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);
	
	}
}