#include<stdio.h>
#include<algorithm>
using namespace std;
long long p[1100000];
long long dp[1100000];
long long dp2[1100000];
long long T;
long long calc(int a,int b){
	long long ret=max(T,(p[b]-p[a+1])*2);
//	printf("%d %d: %lld\n",a,b,ret);
	return ret;
}
int main(){
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	T=c;
	for(int i=0;i<a;i++)scanf("%lld",p+i+1);
	for(int i=0;i<=a;i++)dp[i]=dp2[i]=99999999999999999LL;
	dp[0]=0;
	//dp2[0]=0;
	int t=1;
 
	for(int i=1;i<=a;i++){
		while((p[i]-p[t])*2>T){
			t++;
		}
		dp[i]=min(dp[t-1]+T,dp2[t-1]+p[i]*2);
		dp2[i]=min(dp2[i-1],dp[i-1]-p[i]*2);
	//	printf("%lld %lld\n",dp[i],dp2[i]);
	}
	printf("%lld\n",dp[a]+b);
}