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

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

int e(){
	return 0;
}

int main(){
	int n, k;
	cin>>n>>k;
	vector<int> a(n);
	rep(i, n) cin>>a[i];

	segtree<int, op, e> seg(n);
	rep(i, n){
		int mx=seg.prod(max(0, a[i]-k), min(n, a[i]+k+1));
		seg.set(a[i], mx+1);
	}

	int ans=seg.get(a[n-1]);
	cout<< ans <<endl;
	return 0;
}
