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;
inline int read() {
  int ret = 0, f = 1;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = -f;
  for (; isdigit(ch); ch = getchar()) ret = ret * 10 + ch - 48;
  return ret * f;
}
int N, K, a[200005], vis[200005], ans;
int main() {
  N = read();
  K = read();
  for (int i = 1; i <= N; i++) a[i] = read();
  sort(a + 1, a + 1 + N);
  for (int i = 2; i <= N; i++)
    if (a[i] > a[i - 1] && a[i] <= a[i - 1] + K) {
      vis[i - 1] = 1;
      for (int j = i - 2; j >= 1; j--)
        if (a[j] == a[i - 1])
          vis[j] = 1;
        else
          break;
    }
  for (int i = 1; i <= N; i++)
    if (!vis[i]) ans++;
  printf("%d\n", ans);
  return 0;
}
