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


ll dp[300001][300001];
ll maxLen(ll * arr,ll idx,ll n,ll k,ll last)
{
	if(idx>=n)
	return 0;	
	
	if(dp[idx][last]!=-1)
	return dp[idx][last];
	
	ll ans;
	
		if(abs(arr[idx]-last)<=k)
		{
			//skip current element
			ans=max(maxLen(arr,idx+1,n,k,last),1+maxLen(arr,idx+1,n,k,arr[idx]));
			
		
		}
		else
		{
			ans=maxLen(arr,idx+1,n,k,last);
		}
	dp[idx][last]=ans;
	return ans;
	
	
}

int main()
{
	ll n,k;
	cin>>n>>k;
	ll arr[n];
	ll maxx=0;
	for(ll i=0;i<n;i++)
	{
		cin>>arr[i];
		maxx=max(maxx,arr[i]);
	}
	ll ans=0;
	
	for(int i=0;i<=n+1;i++)
	{
		for(int j=0;j<=maxx+1;j++)
		{
			dp[i][j]=-1;
		}
	}
	for(ll start=0;start<n;start++)
	{
		ans=max(ans,maxLen(arr,start+1,n,k,arr[start]));
	}
	
	cout<<ans;

	
}
