/*
Cred : SunnyYeahBoi
It's my last chance (⌐■_■)
Problem :
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
#define endl "\n"
#define NAME "a"
const int MAXN = 1e6 + 5;
const int inf = 1e18;
const int MOD = 1e9 + 7;
void FileInput(){
if(fopen(NAME".inp" , "r") == NULL)
freopen(NAME".inp" , "w" , stdout);
freopen(NAME".inp" , "r" , stdin);
freopen(NAME".out" , "w" , stdout);
}
int n , k;
int a[MAXN];
int f[MAXN] , pref[MAXN];
void solve(){
cin >> n >> k;
for(int i = 1 ; i <= n ; i++)
cin >> a[i];
sort(a + 1 , a + 1 + n);
for(int i = 1 ; i <= n ; i++){
// tìm j nhỏ nhất sao cho a[j] >= a[i] - k
int j = lower_bound(a + 1 , a + 1 + n , a[i] - k) - a;
f[i] = (i - j + 1);
pref[i] = max(pref[i - 1] , f[i]);
}
int res = 0;
for(int i = 1 ; i <= n ; i++){
int j = lower_bound(a + 1 , a + 1 + n , a[i] - k) - a;
res = max(res , (i - j + 1) + pref[j - 1]);
}
cout << res << endl;
}
int32_t main(){
FileInput();
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
// cin >> t;
while(t--)
solve();
return 0;
}
LyoKICAgIENyZWQgOiBTdW5ueVllYWhCb2kKICAgIEl0J3MgbXkgbGFzdCBjaGFuY2UgKOKMkOKWoF/ilqApCiAgICBQcm9ibGVtIDoKKi8KCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZG91YmxlIGxvbmcgZG91YmxlCiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgTkFNRSAiYSIKCmNvbnN0IGludCBNQVhOID0gMWU2ICsgNTsKY29uc3QgaW50IGluZiA9IDFlMTg7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OwoKdm9pZCBGaWxlSW5wdXQoKXsKICAgIGlmKGZvcGVuKE5BTUUiLmlucCIgLCAiciIpID09IE5VTEwpCiAgICAgICAgZnJlb3BlbihOQU1FIi5pbnAiICwgInciICwgc3Rkb3V0KTsKICAgIGZyZW9wZW4oTkFNRSIuaW5wIiAsICJyIiAsIHN0ZGluKTsKICAgIGZyZW9wZW4oTkFNRSIub3V0IiAsICJ3IiAsIHN0ZG91dCk7Cn0KCmludCBuICwgazsKaW50IGFbTUFYTl07CmludCBmW01BWE5dICwgcHJlZltNQVhOXTsKCnZvaWQgc29sdmUoKXsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKQogICAgICAgIGNpbiA+PiBhW2ldOwoKICAgIHNvcnQoYSArIDEgLCBhICsgMSArIG4pOwogCiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKXsKICAgICAgICAvLyB0w6xtIGogbmjhu48gbmjhuqV0IHNhbyBjaG8gYVtqXSA+PSBhW2ldIC0gawogICAgICAgIGludCBqID0gbG93ZXJfYm91bmQoYSArIDEgLCBhICsgMSArIG4gLCBhW2ldIC0gaykgLSBhOwogICAgICAgIGZbaV0gPSAoaSAtIGogKyAxKTsKICAgICAgICBwcmVmW2ldID0gbWF4KHByZWZbaSAtIDFdICwgZltpXSk7CiAgICB9CgogICAgaW50IHJlcyA9IDA7CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKXsKICAgICAgICBpbnQgaiA9IGxvd2VyX2JvdW5kKGEgKyAxICwgYSArIDEgKyBuICwgYVtpXSAtIGspIC0gYTsKICAgICAgICByZXMgPSBtYXgocmVzICwgKGkgLSBqICsgMSkgKyBwcmVmW2ogLSAxXSk7CiAgICB9CiAgICBjb3V0IDw8IHJlcyA8PCBlbmRsOwp9CgppbnQzMl90IG1haW4oKXsKICAgIEZpbGVJbnB1dCgpOwogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICAgICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9Cg==