#include <bits/stdc++.h>
using namespace std;
const long long maxm = 100000 + 5;
long long t[maxm];
int main(void) {
  long long n, m, a, d;
  cin >> n >> m >> a >> d;
  for (long long i = 1; i <= m; i++) {
    cin >> t[i];
  }
  m = unique(t + 1, t + m + 1) - t - 1;
  long long pre = -d;
  long long res = 0;
  long long cnt = d / a + 1;
  long long last;
  for (long long i = 1; i <= m; i++) {
    long long first = min((pre + d) / a + 1, n + 1);
    last = min(t[i] / a, n);
    long long x = (last - first) / cnt + 1;
    if (first <= last) {
      res += x;
      pre = (first + (x - 1) * cnt) * a;
    }
    if (pre + d < t[i]) {
      pre = t[i];
      res++;
    }
  }
  if (last < n) {
    long long first = min((pre + d) / a + 1, n + 1);
    last = n;
    long long x = (last - first) / cnt + 1;
    if (first <= last) {
      res += x;
    }
  }
  cout << res;
  return 0;
}
