#include <bits/stdc++.h>
#include <atcoder/all>
#define rep(i,n) for(int i = 0; i < (n); i++)
using namespace std;
using namespace atcoder;
typedef long long ll;

int op(int a, int b){ return max(a,b); }
int e() { return 0; }

int main(){
    int n,k; cin>>n>>k;
    segtree<int, op, e> dp(300005);
    rep(i,n){
        int a; cin>>a;
        int l = max(0, a-k);
      	int r = min(300000, a+k+1);
      	int now = dp.prod(l,r) + 1;
        dp.set(a, now);
    }
    int ans = dp.prod(0,300000);
  	cout << ans << endl;
    return 0;
}