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()