#include <bits/stdc++.h>
using namespace std;
inline void Fail() {
  printf("0");
  exit(0);
}
const int maxn = 100005;
int n, e, t;
long long dp[maxn];
int x[maxn];
int main() {
  scanf("%d%d%d", &n, &e, &t);
  for (int(i) = 0; (i) < n; i++) scanf("%d", &x[i]);
  for (int(i) = 0; (i) < n; i++) {
    dp[i] = max((x[i] - x[0]) * 2LL, 1LL * t);
    for (int(j) = 0; (j) < i; j++) {
      dp[i] = min(dp[j] + max(1LL * t, 2LL * (x[i] - x[j + 1])), dp[i]);
    }
  }
  printf("%lld", e + dp[n - 1]);
  return 0;
}
