#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;
int main(){
ll n, m, k;
cin >> n >> m >> k;
vector <ll> a(n);
for (int i = 0; i < n; ++i){
cin >> a[i];
}
sort(a.begin(), a.end());
reverse(a.begin(), a.end());
ll tinggi = m;
int efektif = 0;
for (int j = 0; j < n; ++j){
tinggi += k;
while (a.size() > 0 && a.back() <= tinggi){
a.pop_back();
}
if (a.size() == 0){
break;
}
tinggi = max(tinggi, (ll) a.back());
a.pop_back();
++efektif;
}
cout << efektif << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojZGVmaW5lIGxsIGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKICAgIGxsIG4sIG0sIGs7CiAgICBjaW4gPj4gbiA+PiBtID4+IGs7CiAgICB2ZWN0b3IgPGxsPiBhKG4pOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSl7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CiAgICAKICAgIHNvcnQoYS5iZWdpbigpLCBhLmVuZCgpKTsKICAgIHJldmVyc2UoYS5iZWdpbigpLCBhLmVuZCgpKTsKICAgIAogICAgbGwgdGluZ2dpID0gbTsKICAgIGludCBlZmVrdGlmID0gMDsKICAgIAogICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyArK2opewogICAgICAgIHRpbmdnaSArPSBrOwogICAgCiAgICAKICAgIHdoaWxlIChhLnNpemUoKSA+IDAgJiYgYS5iYWNrKCkgPD0gdGluZ2dpKXsgCiAgICBhLnBvcF9iYWNrKCk7CiAgICB9CiAgICAKICAgIGlmIChhLnNpemUoKSA9PSAwKXsKICAgICAgICBicmVhazsKICAgIH0KICAgIAogICAgdGluZ2dpID0gbWF4KHRpbmdnaSwgKGxsKSBhLmJhY2soKSk7CiAgICBhLnBvcF9iYWNrKCk7CiAgICArK2VmZWt0aWY7CiAgICB9CiAgICBjb3V0IDw8IGVmZWt0aWYgPDwgZW5kbDsKfQ==