#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
int64_t MOD=1000000007;
int64_t INF = 1LL<<60;
int64_t MAX=300000;
int64_t z=0;


int main() {
  int64_t N,K,ans=1; cin>>N>>K;
  vector<int64_t> S(N),DP(N,1);
  fenwick_tree<int64_t> fw(300001);
  rep(i,N){
    cin>>S[i];
    fw.add(S[i],1);
  }
  int64_t p=fw.sum(max(S[0]-K,z),min(MAX,S[0]+K)),P=0;
  for(int i=1;i<N;i++){
    auto d=fw.sum(max(S[i]-K,z),min(MAX,S[i]+K));
    if(abs(S[i]-S[P])<=K){
      if(p<=d){
        ans++;
        p=d;
        P=i;
      }
    }
    else{
      if(ans+p<d){
        ans=0;
        p=d;
        P=i;
      }
    }
    fw.add(S[i],-1);
  }
  cout<<p;
    
}
