import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StreamTokenizer st = new StreamTokenizer(br);
st.nextToken();
int n = (int)st.nval;
int[] nums = new int[n];
st.nextToken();
int k = (int)st.nval;
for (int i = 0 ; i < n ; i++) {
st.nextToken();
nums[i] = (int)st.nval;
}
Arrays.sort(nums);
int count = 0;
int r = 0, l = 0;
while (r < n) {
if (nums[r] - nums[l] > k) {
//左指针右移
l++;
}
count = Math.max(count, r - l + 1);
//右指针右移保持前一次最大长度
r++;
}
System.out.println(count);
}
}