#include <bits/stdc++.h>
template <class T>
inline bool cmax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
template <class T>
inline bool cmin(T& a, const T& b) {
  return a > b ? a = b, 1 : 0;
}
using namespace std;
const int N = 5e5 + 5;
int n, t, e, a[N];
long long res;
inline long long min(register long long x, register long long y) {
  return x < y ? x : y;
}
inline long long max(register long long x, register long long y) {
  return x > y ? x : y;
}
int main() {
  scanf("%d%d%d", &n, &e, &t), res = e;
  for (register int i = (1), I = (n) + 1; i < I; ++i) scanf("%d", &a[i]);
  for (register int l = 1, r = 1; l <= n; l = r) {
    while (r <= n && ((a[r] - a[l]) << 1) <= 1ll * t * (r - l + 1)) ++r;
    res += max(t, (a[r - 1] - a[l]) << 1);
  }
  printf("%lld\n", res);
  return 0;
}
