#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, k, x;
cin >> n >> k >> x;
vector<int> a(n + 1);
for (int i = 1; i <= n; i++)
cin >> a[i];
sort(a.begin() + 1, a.end());
// r[i]: vị trí xa nhất có thể chọn nếu bắt đầu từ i
vector<int> r(n + 2);
int j = 1;
for (int i = 1; i <= n; i++) {
while (j <= n && a[j] - a[i] <= x)
j++;
r[i] = j - 1;
}
// dp[j] = kết quả khi xét từ i+1
// newdp[j] = kết quả khi xét từ i
vector<int> dp(k + 1, 0), newdp(k + 1, 0);
for (int i = n; i >= 1; i--) {
for (int jteam = 0; jteam <= k; jteam++) {
// Không chọn i
newdp[jteam] = dp[jteam];
// Chọn team bắt đầu tại i
if (jteam > 0) {
int len = r[i] - i + 1;
newdp[jteam] = max(newdp[jteam],
len + dp[jteam - 1]);
}
}
dp = newdp;
}
cout << dp[k] << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKCnNpZ25lZCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbiwgaywgeDsKICAgIGNpbiA+PiBuID4+IGsgPj4geDsKCiAgICB2ZWN0b3I8aW50PiBhKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBjaW4gPj4gYVtpXTsKCiAgICBzb3J0KGEuYmVnaW4oKSArIDEsIGEuZW5kKCkpOwoKICAgIC8vIHJbaV06IHbhu4sgdHLDrSB4YSBuaOG6pXQgY8OzIHRo4buDIGNo4buNbiBu4bq/dSBi4bqvdCDEkeG6p3UgdOG7qyBpCiAgICB2ZWN0b3I8aW50PiByKG4gKyAyKTsKICAgIGludCBqID0gMTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIHdoaWxlIChqIDw9IG4gJiYgYVtqXSAtIGFbaV0gPD0geCkKICAgICAgICAgICAgaisrOwogICAgICAgIHJbaV0gPSBqIC0gMTsKICAgIH0KCiAgICAvLyBkcFtqXSA9IGvhur90IHF14bqjIGtoaSB4w6l0IHThu6sgaSsxCiAgICAvLyBuZXdkcFtqXSA9IGvhur90IHF14bqjIGtoaSB4w6l0IHThu6sgaQogICAgdmVjdG9yPGludD4gZHAoayArIDEsIDApLCBuZXdkcChrICsgMSwgMCk7CgogICAgZm9yIChpbnQgaSA9IG47IGkgPj0gMTsgaS0tKSB7CiAgICAgICAgZm9yIChpbnQganRlYW0gPSAwOyBqdGVhbSA8PSBrOyBqdGVhbSsrKSB7CiAgICAgICAgICAgIC8vIEtow7RuZyBjaOG7jW4gaQogICAgICAgICAgICBuZXdkcFtqdGVhbV0gPSBkcFtqdGVhbV07CgogICAgICAgICAgICAvLyBDaOG7jW4gdGVhbSBi4bqvdCDEkeG6p3UgdOG6oWkgaQogICAgICAgICAgICBpZiAoanRlYW0gPiAwKSB7CiAgICAgICAgICAgICAgICBpbnQgbGVuID0gcltpXSAtIGkgKyAxOwogICAgICAgICAgICAgICAgbmV3ZHBbanRlYW1dID0gbWF4KG5ld2RwW2p0ZWFtXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gKyBkcFtqdGVhbSAtIDFdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBkcCA9IG5ld2RwOwogICAgfQoKICAgIGNvdXQgPDwgZHBba10gPDwgIlxuIjsKfQ==