#include <bits/stdc++.h>
using namespace std;
int n, m, a;
long long d, t[100100], nxt, ans;
int main() {
  scanf("%d%d%d%lld", &n, &m, &a, &d);
  for (int i = 1; i <= m; ++i) scanf("%lld", &t[i]);
  nxt = d / a + 1;
  m = unique(t + 1, t + m + 1) - t - 1;
  long long p1 = 1, p2 = 1;
  while (p1 <= n && p2 <= m) {
    if (p1 * a > t[p2]) {
      long long x = t[p2] + d;
      p1 = x / a + 1;
      while (p2 <= m && t[p2] <= x) p2++;
      ans++;
    } else {
      long long y = min((long long)n, t[p2] / a);
      long long z = (y - p1) / nxt + 1;
      ans += z, p1 += z * nxt;
      long long x = (p1 - nxt) * a + d;
      while (p2 <= m && t[p2] <= x) p2++;
    }
  }
  if (p1 <= n) {
    ans += (n - p1) / nxt + 1;
  }
  while (p2 <= m) {
    long long x = t[p2] + d;
    while (p2 <= m && t[p2] <= x) p2++;
    ans++;
  }
  printf("%lld", ans);
}
