#include <bits/stdc++.h>
using namespace std;
int n, k;
int a[300001];
map<pair<int, int>, int> w;
pair<int, int> m;
int dp(int x, int y) {
  if (x == n) return 0;
  if (y == -1) return max(dp(x + 1, a[x]) + 1, dp(x + 1, -1));
  m.first = x;
  m.second = y;
  if (abs(a[x] - y) <= k) {
    w[m] = max(dp(x + 1, a[x]) + 1, dp(x + 1, y));
  } else
    w[m] = dp(x + 1, y);
  return w[m];
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  cout << dp(0, -1);
  return 0;
}
