N , K  =  map ( int , input().strip().split(" ") ) ;

d1 = {} ;
for x in range ( N ) :
	a = int ( input().strip() ) ;
	d2 = {} ;
	
	for r in d1 :
		d = d2[r] if r in d2 else 0 ;
		d2 [ r ] = max ( d1[r]  , d ) ;

		if abs ( r -a )  > K : continue ;

		d = d2[a] if a in d2 else 0 ;
		d2 [ a ] = max ( d1[r] +1 , d ) ;

	d = d2[a] if a in d2 else 0 ;
	d2 [ a ] = max ( 0 +1 , d ) ;
	d1 = d2 ;
print ( max ( d1.values() ) ) ;


