#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using ll = long long;

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

int e() {
	return (int)(0);
}

int main()
{
	int n,k;cin >> n >> k;
	vector<int> a(n);
	for(auto &i:a)cin >> i;
	for(auto &i:a)--i;
	atcoder::segtree<int,op,e> ST(300000);
	for(int i = 0;i<n;i++)
	{
		int in = ST.prod(max(0,a[i]-k),min(n-1,a[i]+k+1));
		in++;
		ST.set(a[i],in);
		//for(int j = 0;j<n;j++)cout<<ST.get(j)<<' ';cout<<endl;
	}
	cout<<ST.all_prod()<<endl;
	
	
}
