#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  char ch = getchar();
  long long x = 0, f = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
int main() {
  long long n = read(), m = read(), a = read(), ans = 0, d = read();
  long long t = 0, e = 0, tt = d / a + 1;
  for (int i = 1; i <= m; ++i) {
    long long x = read();
    if (t < n) {
      int dd = min((x - 1) / a, n);
      if (dd > t) {
        ans += (dd - t - 1) / tt + 1;
        t += ((dd - t - 1) / tt + 1) * tt;
        e = min((t - tt + 1), n) * a + d;
        t = min(t, n);
      }
    }
    if (e < x) {
      ++ans;
      e = x + d;
      t = min(e / a, n);
    }
  }
  if (t < n) ans += (n - t - 1) / tt + 1;
  cout << ans;
}
