#include <bits/stdc++.h>
using namespace std;

const int  maxn=200008;
int n,e; 
int T;
int a[maxn]; 
int q[maxn];
long long f[maxn];


int main(){
  cin>>n>>e>>T;
  for (int i=1;i<=n;i++)
    scanf("%d",&a[i]);
  long long mn=2e9;
  int r=0; int l=0;
  for (int i=1;i<=n;i++)
  {
    r++;
    q[r]=i;
    while (2*(a[i]-a[q[l]])>=T)
      {
        mn=min(mn,f[q[l]-1]-2*a[q[l]]);
        l++;
      }
    f[i]=f[q[l]-1]+T;
    f[i]=min(f[i],2*a[i]+mn);
  }
  cout<<f[n]+e<<endl;
  return 0;
}