#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265358979323846;
const double EPS = 1e-12;
const long long INF = 1e16;
const long long mod = 1e9 + 7;
template <class T>
ostream &operator<<(ostream &os, const vector<T> &v) {
  int n = v.size();
  for (int(i) = 0; (i) < (long long)(n); ++(i))
    os << v[i] << (i == n - 1 ? "" : " ");
  return os;
}
long long n, t, e;
long long x[2010];
long long dp[2010];
int main() {
  cin >> n >> e >> t;
  for (int(i) = 0; (i) < (long long)(n); ++(i)) cin >> x[i];
  long long res = e;
  fill(dp, dp + n + 1, INF);
  dp[0] = 0;
  for (int(i) = 0; (i) < (long long)(n); ++(i)) {
    for (int(j) = 0; (j) < (long long)(i + 1); ++(j)) {
      ((dp[i + 1]) > (dp[j] + max(t, 2 * (x[i] - x[j])))
       ? dp[i + 1] = (dp[j] + max(t, 2 * (x[i] - x[j]))),
       true : false);
    }
  }
  res += dp[n];
  cout << res << endl;
  return 0;
}
