
#include <bits/stdc++.h>
#include <atcoder/all>

typedef unsigned long long ULLONG;
typedef long long LLONG;
static const LLONG MOD_NUM = 1000000007; //998244353;

template<class _T> static void get(_T& a) {
	std::cin >> a;
}
template<class _T> static void get(_T& a, _T& b) {
	std::cin >> a >> b;
}
template<class _T> static void get(_T& a, _T& b, _T& c) {
	std::cin >> a >> b >> c;
}
template <class _T> static _T tp_abs(_T a) {
	if (a < (_T)0) {
		a *= (_T)-1;
	}
	return a;
}

static void D_task();

int main()
{
	D_task();
	fflush(stdout);
	return 0;
}


static void D_task()
{
	int N, K;
	get(N, K);

	std::vector<int> ai(N);
	for (int i = 0; i < N; i++) {
		get(ai[i]);
	}

	std::vector<int> dp(N, 0);
	dp[N - 1] = 1;
	for (int i = N - 2; i >= 0; i--) {

		for (int j = i + 1; j < N; j++) {
			if (tp_abs(ai[i] - ai[j]) <= K) {
				dp[i] = dp[j] + 1;
				break;
			}
		}
	}
	std::sort(dp.begin(), dp.end());
	printf("%d\n", *dp.rbegin());
}
