#include <bits/stdc++.h>
using namespace std;
long long n, m, a, d;
int main() {
  cin >> n >> m >> a >> d;
  long long ans = 0, k = d / a + 1, last = 0;
  long long t_client;
  for (int i = 0; i < m; i++) {
    cin >> t_client;
    if (t_client <= last) continue;
    if (t_client < a) {
      last = t_client + d;
      ans++;
      continue;
    }
    long long kmin = last / a + 1, kmax = t_client / a;
    if (kmin <= kmax && kmin <= n) {
      kmax = min(kmax, n);
      long long delk = kmax - kmin + 1;
      long long cnt = ceil(1.0 * delk / k) - 1;
      ans += cnt;
      kmin += cnt * k;
      if (kmin * a + d >= t_client)
        last = kmin * a + d, ans++;
      else
        last = t_client + d, ans += 2;
    } else
      last = t_client + d, ans++;
  }
  long long b = last / a + 1;
  if (b <= n) ans += ceil(1.0 * (n - b + 1) / k);
  cout << ans << endl;
  return 0;
}
