#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100050;
int x[MAXN];
long long dp[MAXN];
int main() {
  int N, E, T;
  scanf("%d%d%d", &N, &E, &T);
  for (int i = 1; i <= N; i++) scanf("%d", &x[i]);
  deque<int> deq;
  dp[0] = 0;
  for (int i = 1; i <= N; i++) {
    dp[i] = 1ll * (E + T) * MAXN * 10;
    for (int k = 0; k < i; k++)
      dp[i] = min(dp[i], dp[k] + (x[k + 1] - x[k]) +
                             max(T, 2 * (x[i] - x[k + 1])) + (x[i] - x[k + 1]));
    (void)0;
  }
  cout << dp[N] + E - x[N] << endl;
  return 0;
}
