#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100030;
const long long MODD = 1000000009;
long long A[MAX_N], DP[MAX_N];
long long n, E, T;
long long f(long long len) {
  if (2 * len >= T) return 2 * len;
  return T;
}
long long g(int idx) {
  long long& x = DP[idx];
  if (x >= 0) return x;
  for (int i = idx + 1; i <= n; i++) {
    long long val = g(i) + f(A[i - 1] - A[idx]);
    if (x == -1 || val < x) x = val;
  }
  return x;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> E >> T;
  if (n > 2030) return 0;
  for (int i = 0; i < n; i++) cin >> A[i];
  for (int i = 0; i < n; i++) DP[i] = -1;
  cout << E + g(0) << endl;
  return 0;
}
