#include <bits/stdc++.h>
using namespace std;
using P = pair<int, int>;
int main() {
  int n, k;
  cin >> n >> k;
  set<P> st;
  int a;
  cin >> a;
  st.insert(P(a, 1));
  for (int i = 1; i < n; ++i) {
    cin >> a;
    int nans = 1;
    while (1) {
      auto it = upper_bound(st.begin(), st.end(), P(a, 0));
      if (it == st.end() || (*it).first > a + k) break;
      nans = max(nans, (*it).second + 1);
      st.erase(*it);
    }
    while (1) {
      auto it = upper_bound(st.begin(), st.end(), P(a, 0));
      if (it == st.begin()) break;
      --it;
      if ((*it).first < a - k) break;
      nans = max(nans, (*it).second + 1);
      st.erase(*it);
    }
    st.insert(P(a, nans));
  }
  int ans = 0;
  for (auto np : st) {
    ans = max(ans, np.second);
  }
  cout << ans << endl;
}
