#include<bits/stdc++.h>
using namespace std;

int main(){
  int n,k;
  cin >> n >> k;
  vector<int>a(n);
  for(int i=0;i<n;i++)cin >> a.at(i);
  vector<int[2]>dp(n); //[0]は選択 [1]は非選択
  dp.at(0)[0]=1,dp.at(0)[1]=0;
  int c=0;
  for(int i=1;i<n;i++){
    c=i-1;
    while(c>=0&&abs(a.at(i)-a.at(c))>k)c--;
    if(c==-1)dp.at(i)[0]=1;
    else dp.at(i)[0]=max(dp.at(c)[0],dp.at(c)[1])+1;
    dp.at(i)[1]=max(dp.at(i-1)[0],dp.at(i-1)[1]);
  }
  cout << max(dp.at(n-1)[0],dp.at(n-1)[1]) << endl;
  return 0;
}