#include <bits/stdc++.h>
using namespace std;
const int maxn = 300010;
inline long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = (x << 1) + (x << 3) + ch - '0';
    ch = getchar();
  }
  return f * x;
}
long long n, m, a, d, ans = 0;
int main() {
  n = read();
  m = read();
  a = read();
  d = read();
  long long T = 0, Tt = d / a + 1, e = 0, x;
  for (int i = 1; i <= m; ++i) {
    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 << endl;
}
