#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k;
int li[100005],tmp[100005],tmp2[100005];
signed main(){
cin>>n>>k;
for(int i=1;i<=n;i++)scanf("%d\n",&li[i]);
sort(li+1,li+n+1);
for(int i=1;i<=n;i++){
tmp[i]=lower_bound(li+1,li+n+1,li[i]+k)-li;
if(li[tmp[i]]!=li[i]+k)tmp[i]--;
tmp[i]=tmp[i]-i+1;
cout<<tmp[i]<<" "<<li[i]<<" "<<li[i]+k<<endl;
tmp2[i]=tmp[i];
}
for(int i=n-1;i>=1;i--)tmp2[i]=max(tmp2[i],tmp2[i+1]);
int ans=0;
for(int i=1;i<n;i++){
if(i+tmp[i]>n)ans=max(ans,tmp[i]);
else ans=max(ans,tmp[i]+tmp2[i+tmp[i]]);
}
cout<<ans;
}