#include <bits/stdc++.h>
using namespace std;
const int MAX_M = 100000;
const long long LINF = 1LL << 62;
long long ts[MAX_M];
int main() {
  int n, m, a;
  long long d;
  scanf("%d%d%d%lld", &n, &m, &a, &d);
  for (int i = 0; i < m; i++) scanf("%lld", ts + i);
  int c = 0;
  long long t = 0, q = d / a + 1;
  for (int i = 0; i < m; i++)
    if (t < ts[i]) {
      long long k0 = t / a, k1 = min<long long>(ts[i] / a, n);
      if (k0 < k1) {
        long long k = k1 - k0;
        t = (k0 + 1 + (k - 1) / q * q) * a + d;
        c += (k + q - 1) / q;
      }
      if (t < ts[i]) {
        t = ts[i] + d;
        c++;
      }
    }
  if (n > t / a) {
    long long k = n - t / a;
    c += (k + q - 1) / q;
  }
  printf("%d\n", c);
  return 0;
}
