#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int n, z;
vector<int> x;
bool check(int p) {
  for (int i = 0; i < p; i++)
    if (x[n - p + i] - x[i] < z) return false;
  return true;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> z;
  x.resize(n);
  for (int i = 0; i < n; i++) cin >> x[i];
  sort((x).begin(), (x).end());
  int l = 0, r = n / 2;
  while (l < r) {
    int m = (l + r + 1) >> 1;
    if (check(m))
      l = m;
    else
      r = m - 1;
  }
  cout << l;
  return 0;
}
