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

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

int e() {
    return 0;
}

int main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int n, m;
    cin >> n >> m;
    vector<int> a(n);
    for (int i = 0; i < n; i++)
        cin >> a[i];
    atcoder::segtree<int, op, e> st(n);
    for (int i = 0; i < n; i++) {
        int q = st.prod(max(a[i] - m, 0), min(a[i] + m + 1, n));
        st.set(a[i], q + 1);
    }
    cout << st.all_prod() << '\n';
    return 0;
}