#include <bits/stdc++.h>
using namespace std;
int n, d, foo;
multiset<int> a;
bool is_normal() { return (abs(*--a.end() - *a.begin()) <= d); }
int main() {
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  cin >> n >> d;
  for (int i = 0; i < n; i++) {
    cin >> foo;
    a.insert(foo);
  }
  set<pair<int, int> > x;
  for (auto it = a.begin(); it != a.end(); it++) {
    int cnt = 0;
    for (auto i = a.begin(); i != a.end(); i++) {
      if (abs(*i - *it) > d) {
        cnt++;
      }
    }
    if (cnt > 0) x.insert(make_pair(cnt, *it));
  }
  int ans = 0;
  for (auto it = x.rbegin(); it != x.rend(); it++) {
    a.erase(it->second);
    ans++;
    if (is_normal()) break;
  }
  cout << ans;
  return 0;
}
