#include <bits/stdc++.h>
int c[300002];
void merge(int i, int j, int *s) {
  if (i != j) {
    merge(i, (i + j) / 2, s);
    merge((i + j) / 2 + 1, j, s);
    int a = i, b = (i + j) / 2 + 1;
    int d;
    for (d = i; d <= j; d++) {
      if ((i + j) / 2 < a) {
        c[d] = s[b];
        b++;
      } else if (j < b) {
        c[d] = s[a];
        a++;
      } else if (s[a] > s[b]) {
        c[d] = s[a];
        a++;
      } else {
        c[d] = s[b];
        b++;
      }
    }
    for (d = i; d <= j; d++) s[d] = c[d];
  }
}
int main() {
  int n, k, i, j;
  scanf("%d%d", &n, &k);
  int a[n + 1], b[n + 1];
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    b[i] = 1;
  }
  for (i = 0; i < n; i++)
    for (j = 0; j < i; j++)
      if (abs(a[i] - a[j]) <= k && b[i] <= b[j]) b[i] = b[j] + 1;
  merge(0, n - 1, b);
  printf("%d\n", b[0]);
  return 0;
}
