2 1
1 1
 4 1
2 2 1 1
 10 1
2 6 3 4 2 4 4 3 2 1
 2 1
999152 999153
 8 1000000
1 1 5 1000000 1000000 2 2 2
 9 2
1 6 1 5 5 8 6 8 7
 15 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 4
8
 10 1
6 3 1 3 6 4 1 3 6 4
 10 1
1 2 3 5 6 8 10 11 9 4
 7 2
1 5 5 8 9 8 8
 2 1000000
1 1000000
 8 2
3 13 9 8 3 13 9 14
 1 1
1
 2 1
1 2

2
 2
 4
 1
 2
 4
 15
 1
 7
 2
 4
 1
 5
 1
 1

#include <bits/stdc++.h>
using namespace std;
int n, k;
int bin(int elem, int a[]) {
  int low = 0;
  int high = n - 1;
  while (low <= high && low >= 0 && high <= n - 1) {
    int mid = (low + high) / 2;
    if (a[mid] == elem) {
      int left = mid;
      while (a[left] == elem) {
        left--;
      }
      return left + 1;
    } else if (a[mid] > elem) {
      high = mid - 1;
    } else {
      low = mid + 1;
    }
  }
  return -1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> k;
  int a[n];
  for (int i = 0; i < n; i++) cin >> a[i];
  bool swallowed[n];
  memset(swallowed, false, sizeof(swallowed));
  sort(a, a + n);
  int cnt = n;
  for (int i = 0; i < n; i++) {
    if (a[i + 1] == a[i]) continue;
    if (!swallowed[i]) {
      int idx = bin(a[i] - k, a);
      if (idx != -1) {
        for (int j = idx; j < i; j++) {
          if (!swallowed[j]) {
            swallowed[j] = true;
            cnt--;
          }
        }
      }
    }
  }
  cout << cnt;
  return 0;
}
