#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int f(vector<int>&nums,int k){
int n = nums.size();
int maxi=*max_element(nums.begin(),nums.end())+k+1;
int mini=*min_element(nums.begin(),nums.end())-k;
vector<int>range(maxi-mini+1,0);
for(int i = 0 ; i<n;i++){
range[nums[i]-k-mini]++;
range[nums[i]+k+1-mini]--;
}
int sum =0 ; int max_sum = 1; int prev = 0;
for(int i = 0; i<range.size();i++){
sum=sum+range[i];
max_sum = max(max_sum,sum);
}
return max_sum;
}
int main() {
// your code goes here
int n,k; cin>>n>>k;
vector<int>nums(n);
for(int i = 0; i<n;i++){
cin>>nums[i];
}
int ans = f(nums,k);
cout<<ans;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBmKHZlY3RvcjxpbnQ+Jm51bXMsaW50IGspewoJaW50IG4gPSBudW1zLnNpemUoKTsKCWludCBtYXhpPSptYXhfZWxlbWVudChudW1zLmJlZ2luKCksbnVtcy5lbmQoKSkraysxOwoJaW50IG1pbmk9Km1pbl9lbGVtZW50KG51bXMuYmVnaW4oKSxudW1zLmVuZCgpKS1rOwoJdmVjdG9yPGludD5yYW5nZShtYXhpLW1pbmkrMSwwKTsKCWZvcihpbnQgaSA9IDAgOyBpPG47aSsrKXsKCQlyYW5nZVtudW1zW2ldLWstbWluaV0rKzsKCQkKCQlyYW5nZVtudW1zW2ldK2srMS1taW5pXS0tOwoJfQoJaW50IHN1bSA9MCA7IGludCBtYXhfc3VtID0gMTsgaW50IHByZXYgPSAwOwogICAgZm9yKGludCBpID0gMDsgaTxyYW5nZS5zaXplKCk7aSsrKXsKICAgIAlzdW09c3VtK3JhbmdlW2ldOwogICAgCW1heF9zdW0gPSBtYXgobWF4X3N1bSxzdW0pOwogICAKICAgIH0KICAgIHJldHVybiBtYXhfc3VtOwp9CgoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQgbixrOyBjaW4+Pm4+Pms7Cgl2ZWN0b3I8aW50Pm51bXMobik7Cglmb3IoaW50IGkgPSAwOyBpPG47aSsrKXsKCQljaW4+Pm51bXNbaV07Cgl9CglpbnQgYW5zID0gZihudW1zLGspOwoJY291dDw8YW5zOwoJcmV0dXJuIDAgOyAKfQ==