package demo;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
//输入模块
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
int[] arr = new int[n];
int index = 0;
while(n>0) {
arr[index] = scanner.nextInt();
index++;
n--;
}
//将数据进行排序
//因为最大的数,无论存在开头,还是中间,还是结尾,必然是排序后连续的数
//方便后续使用滑动窗口
Arrays.sort(arr);
int left = 0;//左指针
int right = 0;//右指针
int max = 0;//记录最大个数
int sub = 0;//中间变量,记录差值
while(right<arr.length) {
//等于右指针的数据减去左指针的数据
sub = arr[right]-arr[left];
//如果不满足条件
while(sub>k) {
//左指针右移,然后退出
left++;
break;
}
//满足条件,则进行比较,更新最大值
if(max<right-left+1||max==0) {
max = right-left+1;
}
//右指针右移
right++;
}
//输出结果
System.out.println(max);
}
}