#include <bits/stdc++.h>
using namespace std;
static const int Maxn = 100005;
int n;
long long T, E;
long long a[Maxn];
long long dp[Maxn];
int main() {
  scanf("%d%lld%lld", &n, &E, &T);
  if (n > 2000) return cout << "Fuck You Atcoder!\n", 0;
  for (int i = 1; i <= n; ++i) {
    scanf("%lld", a + i);
  }
  memset(dp, 63, sizeof(dp));
  dp[0] = 0;
  for (int i = 1; i <= n; ++i) {
    for (int j = 0; j < i; ++j) {
      dp[i] = min(dp[i], dp[j] + max(T, 2 * (a[i] - a[j + 1])));
    }
  }
  printf("%lld\n", dp[n] + E);
  return 0;
}
