#include <bits/stdc++.h>
using namespace std;
int m;
long long n, a, d, one, A, last, ans;
int main() {
  scanf("%lld%d%lld%lld", &n, &m, &a, &d);
  one = d / a + 1;
  A = n * a;
  for (int i = 1; i <= m; i++) {
    long long T;
    scanf("%lld", &T);
    if (T <= last) continue;
    long long A1 = last / a * a + a;
    if (T <= A1 || A < A1)
      last = T + d, ans++;
    else {
      long long jump = (min(A, T) - A1) / (a * one);
      ans += jump;
      A1 += jump * one * a;
      if (A1 + d < T)
        last = T + d, ans += 2;
      else
        last = A1 + d, ans++;
    }
  }
  long long A1 = last / a * a + a;
  if (A1 <= A) ans += ((A - A1) / a + one) / one;
  printf("%lld", ans);
  return 0;
}
