#include <bits/stdc++.h>
using namespace std;
int N;
long long E, T, x[100100], dp[100100];
int main() {
  scanf("%d %lld %lld", &N, &E, &T);
  for (int i = (0); i < (N); i++) scanf("%lld", &x[i]);
  x[N] = E;
  for (int i = (1); i < (N + 1); i++) dp[i] = 1e18;
  dp[0] = x[0];
  for (int i = (0); i < (N); i++) {
    for (int j = (1); j < (N + 1); j++) {
      long long tot = x[j - 1] - x[i];
      if (tot * 2 <= T)
        dp[j] = min(dp[j], dp[i] + T + tot + x[j] - x[j - 1]);
      else
        dp[j] = min(dp[j], dp[i] + tot * 3 + x[j] - x[j - 1]);
    }
  }
  printf("%lld\n", dp[N]);
  return 0;
}
