#include <bits/stdc++.h>
using namespace std;
int main() {
  long n, e, t;
  cin >> n >> e >> t;
  vector<long> vec(n + 1);
  vec[0] = 0;
  for (int i = (int)(0); i < (int)(n); i++) scanf("%ld", &vec[i + 1]);
  long res = 0;
  int last = 0;
  for (int i = (int)(1); i < (int)(n); i++) {
    long d1 = vec[i] - vec[last + 1];
    long d2 = vec[i + 1] - vec[last + 1];
    if (t >= 2 * d1 && t <= 2 * d2) {
      if (t - 2 * d1 >= 2 * d2 - t) {
        res += 2 * d2;
        last = i + 1;
        i++;
      } else {
        res += t;
        last = i;
      }
    }
  }
  if (last != n)
    res += max(t - 2 * (vec[n] - vec[last + 1]), 0L) +
           2 * (vec[n] - vec[last + 1]);
  res += e;
  cout << res << endl;
  return 0;
}
