import math
from functools import reduce
from collections import deque
import sys
sys.setrecursionlimit(10**7)

def input():
    return sys.stdin.readline().strip()

# スペース区切りの入力を読み込んで数値リストにして返します。
def get_nums_l():
    return [ int(s) for s in input().split(" ")]

# 改行またはスペース区切りの入力をすべて読み込んでイテレータを返します。
def get_all_int():
    return map(int, open(0).read().split())

def log(*args):
    print("DEBUG:", *args, file=sys.stderr)

def main():
    INF = 999999999999999999999999
    MOD = 10**9+7

    n,k = get_nums_l()
    A = list(map(int, [input() for _ in range(n)]))

    # dp[i] = i個目を取ったときの最長列長
    dp = [1] * (n)

    for i in range(1, n):
        for j in range(i-1, -1, -1):
            if abs(A[i]-A[j]) <= k:
                dp[i] = max(dp[i], dp[j]+1)

    print(max(dp))

main()