#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
const int M = 1e5 + 7;
#define up(i,l,r) for(int i=l;i<=r;i++)
#define dn(i,l,r) for(int i=l;i>=r;i--)
long long n, m, g[N], ans, k, ans2,new_g[N],tot;
int main() {
cin >> n >> k;
up(i, 1, n) {
cin >> g[i];
}
sort(g + 1, g + 1 + n);
int l1, r1, l2, r2;
for (long long i = 1, j = 0; i <= n; i++) {
while (j + 1 <= n && g[j + 1] - g[i] <= k) {
j++;
}
if (g[j] - g[i] <= k)
{
if (ans < j - i + 1) {
ans = j - i + 1;
l1 = i, r1 = j;
}
}
}
up(i,1,n) {
if (i >= l1 && i <= r1)continue;
new_g[++tot] = g[i];
}
for (long long i = 1, j = 0; i <= tot; i++) {
while (j + 1 <= tot && new_g[j + 1] - new_g[i] <= k) {
j++;
}
if (new_g[j] - new_g[i] <= k)
{
if (ans2 < j - i + 1) {
ans2 = j - i + 1;
}
}
}
cout << ans + ans2;
}