#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
int n,k,ans,a[500005];
signed main(){
cin>>n>>k; a[0]=-INF; a[n+1]=INF;
rep(i,1,n) cin>>a[i];
auto be=a+1,ed=a+n+1;
sort(be,ed);
rep(i,1,n-1){
int p1=lower_bound(be,ed,a[i]-k)-be+1;
int p2=upper_bound(be,ed,a[i+1]+k)-be;
ans=max(ans,p2-p1+1);
}
cout<<ans<<endl;
}
下辈子再也不用bound了