#include <bits/stdc++.h>
using namespace std;
int n, a, m;
long long d, t[100010], cur = 1, now = 0, ans = 0;
int main() {
  scanf("%d%d%d%lld", &n, &m, &a, &d);
  for (int i = 1; i <= m; i++) scanf("%lld", &t[i]);
  t[++m] = 1ll * n * a;
  for (int i = m; i >= 2; i--)
    if (t[i] < t[i - 1]) swap(t[i], t[i - 1]);
  for (int i = 1; i <= m; i++) {
    if (cur <= n && cur * a < t[i]) {
      now = cur * a;
      long long r = d / a + 1, tot = (t[i] - now) / a + 1;
      long long q = tot / r;
      if (q) {
        ans += q;
        now += (q - 1) * r * a + d;
        tot -= q * r;
        cur = now / a + 1;
      }
      if (tot) {
        ++ans;
        now = cur * a + d;
        cur = now / a + 1;
      }
    }
    if (now >= t[i]) continue;
    now = t[i] + d;
    cur = now / a + 1;
    ++ans;
  }
  printf("%lld\n", ans);
  return 0;
}
