#include <bits/stdc++.h>
#include <atcoder/all>

using namespace std;
using namespace atcoder;

int op(int a, int b)
{
    return max(a, b);
}
int e()
{
    return 0;
}
int main()
{
    int N, K;

    cin >> N >> K;

    segtree<int, op, e> seg(N + 1);

    for (int i = 0; i < N; i++)
    {
        int A;

        cin >> A;

        int l = A - K;
        int r = A + K + 1;

        if (l < 1)
        {
            l = 1;
        }
        if (r > N + 1)
        {
            r = N + 1;
        }
        int v = seg.prod(l, r);

        seg.set(A, v + 1);
    }
    cout << seg.prod(1, N + 1) << endl;
}