#include <bits/stdc++.h>
using namespace std;
long long int a[300001], n;
map<pair<pair<long long int, long long int>, long long int>, long long int> dp;
long long int ans(long long int i, long long int p, long long int k,
                  long long int q) {
  if (i >= n) return 0;
  if (dp.find({{i, p}, q}) != dp.end()) return dp[{{i, p}, q}];
  if (q == 0 || abs(a[i] - p) <= k)
    return dp[{{i, p}, q}] =
               max(1 + ans(i + 1, a[i], k, 1), ans(i + 1, p, k, q));
  return dp[{{i, p}, q}] = ans(i + 1, p, k, q);
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int tt = 1;
  while (tt--) {
    long long int k;
    cin >> n >> k;
    long long int i;
    for (i = 0; i < n; i++) cin >> a[i];
    cout << ans(0, 0, k, 0);
  }
}
