#include <bits/stdc++.h>
using namespace std;
long long n, a, d, last, left, x, size, ans, kry;
int m;
int main() {
  int i;
  scanf("%I64d %d %I64d %I64d", &n, &m, &a, &d);
  size = d / a + 1ll;
  last = 0;
  for (i = 1; i <= m; ++i) {
    scanf("%I64d", &x);
    if (x > n * a) {
      if (last < n * a) {
        ans += (n - last / a) / size;
        kry = last / a + (n - last / a) / size * size;
        if (kry < n) kry += size, ++ans;
        last = (kry - size + 1ll) * a + d;
      }
      if (x > last) last = x + d, ++ans;
      for (++i; i <= m; ++i) {
        scanf("%I64d", &x);
        if (x > last) last = x + d, ++ans;
      }
      break;
    }
    if (x <= last) continue;
    if ((x / a - last / a) % size) continue;
    if (x / a > last / a) {
      ans += (x / a - last / a) / size;
      last = (last / a + (x / a - last / a) / size * size - size + 1ll) * a + d;
    }
    if (x > last) {
      ++ans;
      last = x + d;
    }
  }
  if (last < n * a) {
    ans += (n - last / a) / size;
    kry = last / a + (n - last / a) / size * size;
    if (kry < n) kry += size, ++ans;
    last = (kry - size + 1ll) * a + d;
  }
  printf("%I64d\n", ans);
  return 0;
}
