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