#include <bits/stdc++.h>
using namespace std;
long long clients[100100];
vector<int> timestamps;
int main() {
  long long n, m, a, d, i, t, a_i, c;
  cin >> n >> m >> a >> d;
  for (int i = 0; i < m; i++) {
    cin >> clients[i];
  }
  i = 0;
  t = 1;
  c = 0;
  while (i < m) {
    a_i = clients[i] - clients[i] % a;
    a_i = min(a_i, n * a);
    if (a_i >= t) {
      if (t % a != 0) t = t - t % a + a;
      long long x = (a_i - t) / a;
      long long y = d / a + 1;
      c += 1 + x / y;
      t += (x - x % y) * a;
      t += d + 1;
    } else {
      c++;
      t = clients[i] + d + 1;
    }
    while (clients[i] < t && i < m) i++;
  }
  a_i = n * a;
  if (a_i >= t) {
    if (t % a != 0) t = t - t % a + a;
    long long x = (a_i - t) / a;
    long long y = d / a + 1;
    c += 1 + x / y;
    t += (x - x % y) * a;
    t += d + 1;
  }
  cout << c;
}
