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

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

int e(){
  return 0;
}
  
int main(){
  int N, K, A;
  cin >> N >> K;
  segtree<int, op, e> seg(N);
  rep(i, N){
    cin >> A;
    A--;
    if(!i) seg.set(A, 1);
    else{
      int m = seg.prod(max(0, A - K), min(N, A + K + 1));
      seg.set(A, m + 1);
    }
  }
  cout << seg.all_prod() << endl;
  return 0;
}