#include <bits/stdc++.h>
#include <atcoder/all>
#define rep(i, n) for (int i = 0; i < (n); i++)
using ll = long long;
using namespace std;
using namespace atcoder;
using mint = modint1000000007;
int op(int a, int b) { return max(a, b); }

int e() { return 0; }

int target;

bool f(int v) { return v < target; }


int main() {
    int n,k;cin>>n>>k;
    vector<int> a(n);
    rep(i,n)cin>>a[i];
    segtree<int,op,e> seg(n);
    target=k;
    seg.set(a[0],1);
    for(int i=1;i<n;i++){
        seg.set(a[i],seg.prod(max(i-k,0),min(i+k,n))+1);
    }
    cout<<seg.prod(0,n)<<endl;
}