#include <bits/stdc++.h>
using namespace std;
constexpr long long MAX_N = 1e5;
constexpr long long INF = 1e10;
long long N, E, T;
vector<long long> X;
int main(void) {
  cin >> N >> E >> T;
  X.push_back(0);
  for (size_t i = 0; i < N; i++) {
    long long x;
    cin >> x;
    X.push_back(x);
  }
  vector<long long> dp(N + 1, 0);
  for (long long i = 1; i <= N; i++) {
    long long m = INF;
    for (long long j = 0; j < i; j++) {
      long long d = dp[j] + max(2 * (X[i] - X[j + 1]), T);
      if (d < m) {
        m = d;
      }
    }
    dp[i] = m;
  }
  cout << dp[N] + E << endl;
  return 0;
}
