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


int dp[300002][300002];
int maxLen(int * arr,int idx,int n,int k,int last)
{
	if(idx>=n)
	return 0;	
	
	if(dp[idx][last]!=-1)
	return dp[idx][last];
	
	int 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()
{
	int n,k;
	cin>>n>>k;
	int arr[n];
	for(int i=0;i<n;i++)
	cin>>arr[i];
	int ans=0;
	
	memset(dp,-1,sizeof(dp));
	for(int start=0;start<n;start++)
	{
		ans=max(ans,maxLen(arr,start+1,n,k,arr[start]));
	}
	
	cout<<ans;

	
}
