#include <bits/stdc++.h>
using namespace std;
using ll = unsigned long long int;
int n, k;
const int maxN = 300000;
int a[maxN];
int anss;
vector<int> adj[maxN];
void solve(int i, int ans) {
  for (int j = 0; j < adj[i].size(); j++) {
    solve(adj[i][j], ans + 1);
  }
  anss = max(anss, ans);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  anss = 0;
  set<int> taken;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      if (abs(a[j] - a[i]) <= k) {
        adj[i].push_back(j);
        taken.insert(i);
      }
    }
  }
  for (int i = 0; i < n; i++) {
    if (taken.count(i)) solve(i, 1);
  }
  cout << anss;
}
