/*
/\_/\
(= ._.)
/ >0 \>1
*/
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define ull unsigned long long
#define int long long
#define endl '\n'
#define pb push_back
#define pf push_front
#define pii pair<int,int>
#define pll pair<int64_t,int64_t>
#define sz(x) (int32_t)(x).size()
#define all(x) (x).begin(),(x).end()
#define f0(i,n) for(int32_t i=0;i<n;i++)
#define f1(i,n) for(int32_t i=1;i<=n;i++)
#define fz(i,a,n,z) for(int32_t i=a;i<n;i+=z)
#define rep(i,a,n,z) for(int32_t i=a;i>n;i-=z)
#define onii_chan ios_base::sync_with_stdio(false);
#define baka cin.tie(0);
#define hentai cout.tie(0);
#define file(name) if(fopen(name".inp","r")){freopen(name".inp","r",stdin);freopen(name".out","w",stdout);}
template <typename T>
using heap = priority_queue<T, vector<T>, greater<T>>;
template <typename T>
using priq = priority_queue<T>;
template<typename... T>
void in(T&... args) { ((cin >> args), ...); }
template<typename F, typename... R>
void print(int ok, F&& f, R&&... r) {
static bool space = true;
if (ok == 2) {
cout << f << '\n';
((cout << r << '\n'), ...);
return;
}
if (ok) {
if (!space) cout << " ";
space = false;
}
cout << f;
((cout << " " << r), ...);
if (ok == 3) {
cout << '\n';
space = true;
}
}
template <typename T>
bool minimize(T& a, const T& b) {
return b < a ? (a = b, true) : false;
}
template <typename T>
bool maximize(T& a, const T& b) {
return a < b ? (a = b, true) : false;
}
const int MAXN = 1e6;
const int mod = 1e9 + 7;
const int base = 131;
const int INF = LLONG_MAX;
inline void add(int &a,int b){
a += b;
if(a >= mod) a -= mod;
if(a < 0) a += mod;
}
///---------------------------------------------------------------
/// End the template, take a sip of Coke before reading the code
int n,k,a[MAXN + 5];
void inp(void){
cin>>n>>k;
for(int i = 1; i <= n; i++){
cin>>a[i];
}
}
namespace subtask_1{
int mask[15], ans = 0;
void recursion(int pos){
if(pos > n){
int cnt = 0;
vector<int>one;
vector<int>two;
for(int i = 1; i <= n; i++){
if(mask[i] == 1){
one.pb(a[i]);
++cnt;
}
else if(mask[i] == 2){
two.pb(a[i]);
++cnt;
}
}
if(one.empty()|| two.empty())return;
int mx = *max_element(all(one));
int mn = *min_element(all(one));
if(mx - mn > k){
return;
}
mx = *max_element(all(two));
mn = *min_element(all(two));
if(mx - mn > k){
return;
}
maximize(ans, cnt);
return;
}
for(int i = 0; i <= 2; i++){
mask[pos] = i;
recursion(pos + 1);
}
}
void sol(void){
recursion(1);
cout<<ans<<endl;
}
}
namespace full{
void sol(void){
sort(a + 1,a + n + 1);
vector<int>left(n + 1);
vector<int>right(n + 1);
int lo = 1, hi = 2;
while(hi <= n){
while(lo <= hi && a[hi] - a[lo] > k){
lo++;
}
left[hi] = (hi - lo + 1);
hi++;
}
int r = 1;
for(int l = 1; l <= n; l++){
while(r <= n && a[r] - a[l] <= k){
r++;
}
right[l] = r - l;
}
vector<int>best_l(n + 1,0), best_r(n + 2,0);
for(int i = 1;i <= n; i++){
best_l[i] = max(best_l[i - 1], left[i]);
}
for(int i = n; i >= 1; i--){
best_r[i] = max(best_r[i + 1], right[i]);
}
int ans = 0;
for(int i = 1; i < n; i++){
maximize(ans, best_l[i] + best_r[i + 1]);
}
cout<<ans<<endl;
}
}
signed main(){
onii_chan;
baka; hentai;
if (fopen("stdin.txt", "r")) {
freopen("stdin.txt", "r", stdin);
freopen("stdout.txt", "w", stdout);
}
inp();
if(n <= 10)subtask_1::sol();
else full::sol();
return 0;
}
LyoKICAgICAvXF8vXAogICAgKD0gLl8uKQogICAgLyA+MCAgXD4xCgoqLwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBwZiBwdXNoX2Zyb250CiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBwbGwgcGFpcjxpbnQ2NF90LGludDY0X3Q+CiNkZWZpbmUgc3ooeCkgKGludDMyX3QpKHgpLnNpemUoKQojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwoeCkuZW5kKCkKI2RlZmluZSBmMChpLG4pIGZvcihpbnQzMl90IGk9MDtpPG47aSsrKQojZGVmaW5lIGYxKGksbikgZm9yKGludDMyX3QgaT0xO2k8PW47aSsrKQojZGVmaW5lIGZ6KGksYSxuLHopIGZvcihpbnQzMl90IGk9YTtpPG47aSs9eikKI2RlZmluZSByZXAoaSxhLG4seikgZm9yKGludDMyX3QgaT1hO2k+bjtpLT16KQojZGVmaW5lIG9uaWlfY2hhbiBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKI2RlZmluZSBiYWthIGNpbi50aWUoMCk7CiNkZWZpbmUgaGVudGFpIGNvdXQudGllKDApOwojZGVmaW5lIGZpbGUobmFtZSkgaWYoZm9wZW4obmFtZSIuaW5wIiwiciIpKXtmcmVvcGVuKG5hbWUiLmlucCIsInIiLHN0ZGluKTtmcmVvcGVuKG5hbWUiLm91dCIsInciLHN0ZG91dCk7fQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KdXNpbmcgaGVhcCA9IHByaW9yaXR5X3F1ZXVlPFQsIHZlY3RvcjxUPiwgZ3JlYXRlcjxUPj47CnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp1c2luZyBwcmlxID0gcHJpb3JpdHlfcXVldWU8VD47CnRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+CnZvaWQgaW4oVCYuLi4gYXJncykgeyAoKGNpbiA+PiBhcmdzKSwgLi4uKTsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBGLCB0eXBlbmFtZS4uLiBSPgp2b2lkIHByaW50KGludCBvaywgRiYmIGYsIFImJi4uLiByKSB7CiAgICBzdGF0aWMgYm9vbCBzcGFjZSA9IHRydWU7CiAgICBpZiAob2sgPT0gMikgewogICAgICAgIGNvdXQgPDwgZiA8PCAnXG4nOwogICAgICAgICgoY291dCA8PCByIDw8ICdcbicpLCAuLi4pOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvaykgewogICAgICAgIGlmICghc3BhY2UpIGNvdXQgPDwgIiAiOwogICAgICAgIHNwYWNlID0gZmFsc2U7CiAgICB9CiAgICBjb3V0IDw8IGY7CiAgICAoKGNvdXQgPDwgIiAiIDw8IHIpLCAuLi4pOwogICAgaWYgKG9rID09IDMpIHsKICAgICAgICBjb3V0IDw8ICdcbic7CiAgICAgICAgc3BhY2UgPSB0cnVlOwogICAgfQp9CnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpib29sIG1pbmltaXplKFQmIGEsIGNvbnN0IFQmIGIpIHsKICAgIHJldHVybiBiIDwgYSA/IChhID0gYiwgdHJ1ZSkgOiBmYWxzZTsKfQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KYm9vbCBtYXhpbWl6ZShUJiBhLCBjb25zdCBUJiBiKSB7CiAgICByZXR1cm4gYSA8IGIgPyAoYSA9IGIsIHRydWUpIDogZmFsc2U7Cn0KY29uc3QgaW50IE1BWE4gPSAxZTY7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgYmFzZSA9IDEzMTsKY29uc3QgaW50IElORiA9IExMT05HX01BWDsKaW5saW5lIHZvaWQgYWRkKGludCAmYSxpbnQgYil7CiAgICBhICs9IGI7CiAgICBpZihhID49IG1vZCkgYSAtPSBtb2Q7CiAgICBpZihhIDwgMCkgYSArPSBtb2Q7Cn0KLy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vLyBFbmQgdGhlIHRlbXBsYXRlLCB0YWtlIGEgc2lwIG9mIENva2UgYmVmb3JlIHJlYWRpbmcgdGhlIGNvZGUKaW50IG4sayxhW01BWE4gKyA1XTsKdm9pZCBpbnAodm9pZCl7CiAgICBjaW4+Pm4+Pms7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY2luPj5hW2ldOwogICAgfQp9Cm5hbWVzcGFjZSBzdWJ0YXNrXzF7CiAgICBpbnQgbWFza1sxNV0sIGFucyA9IDA7CiAgICB2b2lkIHJlY3Vyc2lvbihpbnQgcG9zKXsKICAgICAgICBpZihwb3MgPiBuKXsKICAgICAgICAgICAgaW50IGNudCA9IDA7CiAgICAgICAgICAgIHZlY3RvcjxpbnQ+b25lOwogICAgICAgICAgICB2ZWN0b3I8aW50PnR3bzsKICAgICAgICAgICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgICAgICAgICAgaWYobWFza1tpXSA9PSAxKXsKICAgICAgICAgICAgICAgICAgICBvbmUucGIoYVtpXSk7CiAgICAgICAgICAgICAgICAgICAgKytjbnQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmKG1hc2tbaV0gPT0gMil7CiAgICAgICAgICAgICAgICAgICAgdHdvLnBiKGFbaV0pOwogICAgICAgICAgICAgICAgICAgICsrY250OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKG9uZS5lbXB0eSgpfHwgdHdvLmVtcHR5KCkpcmV0dXJuOwogICAgICAgICAgICBpbnQgbXggPSAqbWF4X2VsZW1lbnQoYWxsKG9uZSkpOwogICAgICAgICAgICBpbnQgbW4gPSAqbWluX2VsZW1lbnQoYWxsKG9uZSkpOwogICAgICAgICAgICBpZihteCAtIG1uID4gayl7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXggPSAqbWF4X2VsZW1lbnQoYWxsKHR3bykpOwogICAgICAgICAgICBtbiA9ICptaW5fZWxlbWVudChhbGwodHdvKSk7CiAgICAgICAgICAgIGlmKG14IC0gbW4gPiBrKXsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBtYXhpbWl6ZShhbnMsIGNudCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8PSAyOyBpKyspewogICAgICAgICAgICBtYXNrW3Bvc10gPSBpOwogICAgICAgICAgICByZWN1cnNpb24ocG9zICsgMSk7CiAgICAgICAgfQogICAgfQogICAgdm9pZCBzb2wodm9pZCl7CiAgICAgICAgcmVjdXJzaW9uKDEpOwogICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgIH0KfQpuYW1lc3BhY2UgZnVsbHsKICAgIHZvaWQgc29sKHZvaWQpewogICAgICAgIHNvcnQoYSArIDEsYSArIG4gKyAxKTsKICAgICAgICB2ZWN0b3I8aW50PmxlZnQobiArIDEpOwogICAgICAgIHZlY3RvcjxpbnQ+cmlnaHQobiArIDEpOwogICAgICAgIGludCBsbyA9IDEsIGhpID0gMjsKICAgICAgICB3aGlsZShoaSA8PSBuKXsKICAgICAgICAgICAgd2hpbGUobG8gPD0gaGkgJiYgYVtoaV0gLSBhW2xvXSA+IGspewogICAgICAgICAgICAgICAgbG8rKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBsZWZ0W2hpXSA9IChoaSAtIGxvICsgMSk7CiAgICAgICAgICAgIGhpKys7CiAgICAgICAgfQogICAgICAgIGludCByID0gMTsKICAgICAgICBmb3IoaW50IGwgPSAxOyBsIDw9IG47IGwrKyl7CiAgICAgICAgICAgIHdoaWxlKHIgPD0gbiAmJiBhW3JdIC0gYVtsXSA8PSBrKXsKICAgICAgICAgICAgICAgIHIrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICByaWdodFtsXSA9IHIgLSBsOwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8aW50PmJlc3RfbChuICsgMSwwKSwgYmVzdF9yKG4gKyAyLDApOwogICAgICAgIGZvcihpbnQgaSA9IDE7aSA8PSBuOyBpKyspewogICAgICAgICAgICBiZXN0X2xbaV0gPSBtYXgoYmVzdF9sW2kgLSAxXSwgbGVmdFtpXSk7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaSA9IG47IGkgPj0gMTsgaS0tKXsKICAgICAgICAgICAgYmVzdF9yW2ldID0gbWF4KGJlc3RfcltpICsgMV0sIHJpZ2h0W2ldKTsKICAgICAgICB9CiAgICAgICAgaW50IGFucyA9IDA7CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIG1heGltaXplKGFucywgYmVzdF9sW2ldICsgYmVzdF9yW2kgKyAxXSk7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgIH0KfQpzaWduZWQgbWFpbigpewogICAgb25paV9jaGFuOwogICAgYmFrYTsgaGVudGFpOwogICAgaWYgKGZvcGVuKCJzdGRpbi50eHQiLCAiciIpKSB7CiAgICAgICAgZnJlb3Blbigic3RkaW4udHh0IiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbigic3Rkb3V0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGlucCgpOwogICAgaWYobiA8PSAxMClzdWJ0YXNrXzE6OnNvbCgpOwogICAgZWxzZSBmdWxsOjpzb2woKTsKICAgIHJldHVybiAwOwp9Cg==