#include <bits/stdc++.h>

using namespace std;

int const NMAX = 5e4;
int n, k;
int a[1 + NMAX];
int le[1 + NMAX], ri[1 + NMAX];
int maxL[1 + NMAX], maxR[1 + NMAX];

int main() {
    cin >> n >> k;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    sort(a+1, a+n+1);
    int to = 1;
    for(int i = 1; i <= n; i++) {
        while(to < n && a[to+1]-a[i] <= k) {
            to++;
        }
        ri[i] = to;
    }
    int from = n;
    for(int i = n; i >= 1; i--) {
        while(from > 1 && a[i]-a[from-1] <= k) {
            from--;
        }
        le[i] = from;
    }
    for(int i = 1; i <= n; i++) {
        maxL[i] = max(maxL[i-1], i-le[i]+1);
    }
    for(int i = n; i >= 1; i--) {
        maxR[i] = max(maxR[i+1], ri[i]-i+1);
    }
    int ans = 0;
    for(int i = 1; i < n; i++) {
        ans = max(ans, maxL[i] + maxR[i+1]);
        //cout << i << ": " << le[i] << ", " << ri[i] << "\n";
    }
    cout << ans << "\n";
}