#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll maxN = 1e5 + 36;

ll n, k;
ll a[maxN];
ll pref[maxN], suff[maxN];

void input() {
    cin >> n >> k;
    for (ll i = 1; i <= n; i++) {
        cin >> a[i];
    }
}

void init() {
    sort(a + 1, a + 1 + n);
}

ll solve() {
    // Calculate pref[i]: max elements that can be chosen in range [1, i]
    ll l = 1;
    for (ll i = 1; i <= n; i++) {
        while (a[i] - a[l] > k) {
            l++;
        }
        pref[i] = max(pref[i - 1], i - l + 1);
    }

    // Calculate suff[i]: max elements that can be chosen in range [i, n]
    ll r = n;
    for (ll i = n; i >= 1; i--) {
        while (a[r] - a[i] > k) {
            r--;
        }
        suff[i] = max(suff[i + 1], r - i + 1);
    }

    // Find max(pref[i] + suff[i + 1])
    ll ans = 0;
    for (ll i = 1; i <= n; i++) {
        ans = max(ans, pref[i] + suff[i + 1]);
    }
    return ans;
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    input();
    init();
    cout << solve() << "\n";

    return 0;
}