#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, a, d, m;
  cin >> n >> m >> a >> d;
  vector<long long> t(m);
  for (long long& i : t) cin >> i;
  if (a < t[0]) t.insert(t.begin(), a);
  long long ans = 0;
  long long end = -1;
  long long last = n * a;
  long long w = (d / a + 1) * a;
  for (int i = 0; i < t.size();) {
    if (end < t[i]) {
      ++ans;
      end = t[i] + d;
    }
    while (i < t.size() && t[i] <= end) ++i;
    if (i == t.size()) break;
    long long next = (end / a + 1) * a;
    if (next > last) continue;
    if (t[i] < next) continue;
    long long k = (min(t[i], last) - next) / w;
    ans += k + 1;
    end = next + k * w + d;
  }
  long long next = (end / a + 1) * a;
  if (next <= last) ans += max(0ll, (last - next) / w + 1);
  cout << ans << endl;
}
