#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
long long n, m, a, d;
long long t[N];
int main() {
  cin >> n >> m >> a >> d;
  for (int j = 1; j <= m; j++) {
    scanf("%lld", &t[j]);
  }
  t[m + 1] = 8e18;
  long long i = 1, ans = 0, last = -1;
  for (int j = 1; j <= m + 1; j++) {
    if (i > n) {
      if (j <= m && last < t[j]) {
        ans++;
        last = t[j] + d;
      }
      continue;
    }
    if (t[j] > last) {
      if (t[j] <= i * a) {
        ans++;
        last = t[j] + d;
        i = last / a + 1;
        continue;
      }
      long long u = d / a + 1;
      long long togo = min(n, t[j] / a);
      long long dis = ((togo - i) / u);
      ans += dis + 1;
      i += dis * u;
      last = i * a + d;
      if (j <= m && last < t[j]) {
        ans++;
        last = t[j] + d;
      }
      i = last / a + 1;
    }
  }
  cout << ans << endl;
  return 0;
}
