n,k = gets.split(' ').map(&:to_i)
list = n.times.map{gets.to_i}
memo = Array.new(n,1)

(n-2).downto(0) do |posi|
  max = 0
  (posi+1).upto(n-1) do |i|
    next if (list[i] - list[posi]).abs > k
    max = [max,memo[i]].max
  end
  memo[posi] += max
end

puts memo.max
