由于题目中取的是任意两个数字相差不超过 k, 则保证子数组中 max - min <= k 即可,对数组进行排序,利用双指针遍历数组的,当前值与子数组中的最小值相差超过 k 时,移动左指针,最终得到可以取的最大数组长度
 
n, k = map(int, input().strip().split(" "))
data = sorted(map(int, input().strip().split(" ")))
res = 0
l = r = 0
while r < n:
    while data[r] - data[l] > k:
        l += 1
    res = max(res, r - l + 1)
    r += 1
print(res)