#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;

int n;
ll W, L;


int main () {
cin >> n >> L >> W;
vector<ll> a(n + 2);
for (int i =1; i <= n ;i ++) {
cin >> a[i];
}
a[0] = -W;
a[n + 1] = L;
int ans = 0;
for (int i = 0; i <= n; i ++) {
if (a[i] + W < a[i + 1]) {
ans += (a[i + 1] - a[i] - 1) / W;
}
}
cout << ans << endl;
return 0;
}

-1表示去掉当前的覆盖a[i], a[i]+ W; 想法没错但是写法不对。