#include<iostream>
#include<iomanip>
#include<math.h>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<map>
#define maxn 10000100
using namespace std;
int n, k,daxiao[maxn],shuniang[maxn],zhizhen=1,mins,sum=1;
int read();
int main() {
cin >> n >> k;
for (int i = 1; i <= n; ++i) {
cin>> daxiao[i];
}
sort(daxiao + 1, daxiao + 1 + n);
mins = daxiao[1];
if (n == 1) {
cout << 1 << endl;
return 0;
}
for (int i = 2; i <= n; ++i) {
if (daxiao[i] - mins > k) {
mins = daxiao[i];
shuniang[zhizhen++] = sum;
sum =1;
}
else {
sum++;
}
if (i == n) {
shuniang[zhizhen++] = sum;
}
}
sort(shuniang + 1, shuniang + 1 + zhizhen);
cout << shuniang[zhizhen] + shuniang[zhizhen - 1] << endl;
return 0;
}
inline int read() {
int w = 1, q = 0;
char ch = ' ';
while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();
if (ch == '-') w = -1, ch = getchar();
while (ch >= '0' && ch <= '9') q = q * 10 + ch - '0', ch = getchar();
return w * q;
}