import java.util.*;
import java.io.*;

public class Main {
    //本质是求 有序数组最长子区间 且 头尾差 <= k 
    public static void main(String[] args) {
        Scanner in = new Scanner(new BufferedInputStream(System.in));
        PrintWriter out = new PrintWriter(System.out);

        int n = in.nextInt();
        int k = in.nextInt();
        int[] nums = new int[n+1];
        for(int i =1 ;i <=n;i++){
            nums[i] = in.nextInt();
        }
        Arrays.sort(nums);
        //记录最长
        int maxLen = 0;
        //滑动窗口
        int l = 1;
        for(int r = 1; r<=n;r++){
            //一旦大于k 就缩减头部
            while(nums[r] - nums[l] > k){
                l++;
            }
            maxLen = Math.max(maxLen,r - l + 1);
        }
        out.println(maxLen);
        out.flush();
    }
}