#include <bits/stdc++.h>   using namespace std;   long long n, m, x, _, a, d, t[100001], ans;   long long rua(long long l, long long r) {     if (r < l) return _;     if (_ >= n * a) {       ans++;       return r + d;     }     if (l % a && l / a == r / a) {       ans++;       return r + d;     }     long long f = min((l - 1) / a + 1, n);     long long la = min(r / a, n);     long long k = (la - f) / x + 1;     ans += k;     f += (k - 1) * x;     f *= a;     if (f + d >= r) {       return f + d;     }     ans++;     return r + d;   }   int main() {     scanf( %I64d%I64d%I64d%I64d , &n, &m, &a, &d), x = d / a + 1;     for (long long i = 1; i <= m; i++)       scanf( %I64d , &t[i]), _ = rua(_ + 1, t[i]);     rua(_ + 1, n * a);     printf( %I64d n , ans);     return 0;   }   