import sys

# for line in sys.stdin:
#     a = line.split()
#     print(int(a[0]) + int(a[1]))


"""
  测试用例1 
1  2   2  3    5     
4
测试用例2 
----------------------------------
3  683241938
1  737202770    72474 0701 
2

[737202770    72474 0701]   长度为2 
------------------------------------
测试用例三
12 143115078
395834330 220145190 83459824 663277015 235306933 31264452 918642913 241780136 429712249 443997814 253780219 61899031

排序之后     最大[left,right]出现 在中间位置  solve1 无法解决
[31264452, 61899031, 83459824, 220145190, 235306933, 241780136, 253780219, 395834330, 429712249, 443997814, 663277015, 918642913] 

"""
def  sovle1():
    ns =list(map(int,input().split()))
    k=ns[1]
    nums= list(map(int ,input().split()))
    nums.sort()
   
    left =0 
    right =len(nums)-1  

    #  从左到右 
    while left<right:
        print(nums[left],nums[right],nums[right]-nums[left]>k)
        if nums[right]-nums[left]>k:
            right-=1
        else:
            break
    ret1=0
    if right>left:
        ret1 =right-left+1
    print(nums,left,right)
    left=0 
    right=len(nums)-1
    while left<right:
        print(nums[left],nums[right],nums[right]-nums[left]>k)
        if nums[right]-nums[left]>k:
            left+=1
        else:
            break 
    ret2=0
    if left<right:
        ret2=right-left+1
    print(nums,ret1,ret2)
    ret =max(ret1,ret2)
    print(ret)

"""
  参考题解: 
  https://blog.nowcoder.net/n/60acf363a90745fcb1adf4692bd1709f

"""
def  sovle2():
    ns =list(map(int,input().split()))
    k=ns[1]
    nums= list(map(int ,input().split()))
    nums.sort()
    n =len(nums)
    left =0 
    #right =len(nums)-1
    right=0  # 移动右指针  
    ret =0
    #  从左到右 
    while right<n:
        #print(nums[left],nums[right],nums[right]-nums[left]>k)
        if nums[right]-nums[left]>k:
            left +=1
        
            # 如果 出现在中间部分 需要移动left 
        ret=max(ret ,right-left+1)
        right+=1
    print(ret)
   
sovle2()