#include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
using namespace atcoder;

#define rep(i, n) for(int i = 0; i < (n); ++i)
#define repr(i, n) for(int i = (n-1); i >= 0; --i)

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

typedef long long ll;
typedef pair<int, int> P;

const int MAX = 300005;
const int INF = 1001001001;
const int MOD = 1000000007;

int op(int a, int b) {
    return max(a, b);
}

int e() { return 0; }

int main(){
    int N, K;
    cin >> N >> K;

    vector<int> A(N);
    for (auto &i : A) cin >> i;

    segtree<int, op, e> st(MAX);
    for (auto &i : A) {
        st.set(i, st.prod(max(0, i - K), min(MAX, i + K + 1)) + 1);
    }

    cout << st.prod(0, N) << endl;
}