#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxN = 1e5 + 36;
ll n, k;
ll a[maxN];
ll pref[maxN], suff[maxN];
void input() {
cin >> n >> k;
for (ll i = 1; i <= n; i++) {
cin >> a[i];
}
}
void init() {
sort(a + 1, a + 1 + n);
}
ll solve() {
// Calculate pref[i]: max elements that can be chosen in range [1, i]
ll l = 1;
for (ll i = 1; i <= n; i++) {
while (a[i] - a[l] > k) {
l++;
}
pref[i] = max(pref[i - 1], i - l + 1);
}
// Calculate suff[i]: max elements that can be chosen in range [i, n]
ll r = n;
for (ll i = n; i >= 1; i--) {
while (a[r] - a[i] > k) {
r--;
}
suff[i] = max(suff[i + 1], r - i + 1);
}
// Find max(pref[i] + suff[i + 1])
ll ans = 0;
for (ll i = 1; i <= n; i++) {
ans = max(ans, pref[i] + suff[i + 1]);
}
return ans;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
input();
init();
cout << solve() << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKY29uc3QgbGwgbWF4TiA9IDFlNSArIDM2OwoKbGwgbiwgazsKbGwgYVttYXhOXTsKbGwgcHJlZlttYXhOXSwgc3VmZlttYXhOXTsKCnZvaWQgaW5wdXQoKSB7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KfQoKdm9pZCBpbml0KCkgewogICAgc29ydChhICsgMSwgYSArIDEgKyBuKTsKfQoKbGwgc29sdmUoKSB7CiAgICAvLyBDYWxjdWxhdGUgcHJlZltpXTogbWF4IGVsZW1lbnRzIHRoYXQgY2FuIGJlIGNob3NlbiBpbiByYW5nZSBbMSwgaV0KICAgIGxsIGwgPSAxOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICB3aGlsZSAoYVtpXSAtIGFbbF0gPiBrKSB7CiAgICAgICAgICAgIGwrKzsKICAgICAgICB9CiAgICAgICAgcHJlZltpXSA9IG1heChwcmVmW2kgLSAxXSwgaSAtIGwgKyAxKTsKICAgIH0KCiAgICAvLyBDYWxjdWxhdGUgc3VmZltpXTogbWF4IGVsZW1lbnRzIHRoYXQgY2FuIGJlIGNob3NlbiBpbiByYW5nZSBbaSwgbl0KICAgIGxsIHIgPSBuOwogICAgZm9yIChsbCBpID0gbjsgaSA+PSAxOyBpLS0pIHsKICAgICAgICB3aGlsZSAoYVtyXSAtIGFbaV0gPiBrKSB7CiAgICAgICAgICAgIHItLTsKICAgICAgICB9CiAgICAgICAgc3VmZltpXSA9IG1heChzdWZmW2kgKyAxXSwgciAtIGkgKyAxKTsKICAgIH0KCiAgICAvLyBGaW5kIG1heChwcmVmW2ldICsgc3VmZltpICsgMV0pCiAgICBsbCBhbnMgPSAwOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBhbnMgPSBtYXgoYW5zLCBwcmVmW2ldICsgc3VmZltpICsgMV0pOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgaW5wdXQoKTsKICAgIGluaXQoKTsKICAgIGNvdXQgPDwgc29sdmUoKSA8PCAiXG4iOwoKICAgIHJldHVybiAwOwp9