#include <bits/stdc++.h>
#define taskname ""
#define ff first
#define ss second
using namespace std;
using ld = long double;
using ull = unsigned long long;
using ll = long long;
using pll = pair <ll, ll>;
using pii = pair <int, int>;
const char el = '\n';
const char sp = ' ';
const ll oo = 1e9; //1e18;
const ll maxN = 2e5 + 5;
ll n, m;
ll e[maxN], c = 0;
int main ()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
if (fopen(taskname".inp", "r"))
{
freopen(taskname".inp","r",stdin);
freopen(taskname".out","w",stdout);
}
cin >> n >> m;
for (int i = 1;i <= n;++i)
{
ll x;
cin >> x;
if (i * m >= x)
{
x = i * m - x;
int k = upper_bound(e + 1, e + 1 + c, x) - e;
c += k > c;
e[k] = x;
}
}
cout << n - c;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgdGFza25hbWUgIiIKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsZCA9IGxvbmcgZG91YmxlOwp1c2luZyB1bGwgPSB1bnNpZ25lZCBsb25nIGxvbmc7CnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyBwbGwgPSBwYWlyIDxsbCwgbGw+Owp1c2luZyBwaWkgPSBwYWlyIDxpbnQsIGludD47CmNvbnN0IGNoYXIgZWwgPSAnXG4nOwpjb25zdCBjaGFyIHNwID0gJyAnOwpjb25zdCBsbCBvbyA9IDFlOTsgLy8xZTE4Owpjb25zdCBsbCBtYXhOID0gMmU1ICsgNTsKbGwgbiwgbTsKbGwgZVttYXhOXSwgYyA9IDA7CgppbnQgbWFpbiAoKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGlmIChmb3Blbih0YXNrbmFtZSIuaW5wIiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKHRhc2tuYW1lIi5pbnAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrbmFtZSIub3V0IiwidyIsc3Rkb3V0KTsKICAgIH0KICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IgKGludCBpID0gMTtpIDw9IG47KytpKQogICAgewogICAgICAgIGxsIHg7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgaWYgKGkgKiBtID49IHgpCiAgICAgICAgewogICAgICAgICAgICB4ID0gaSAqIG0gLSB4OwogICAgICAgICAgICBpbnQgayA9IHVwcGVyX2JvdW5kKGUgKyAxLCBlICsgMSArIGMsIHgpIC0gZTsKICAgICAgICAgICAgYyArPSBrID4gYzsKICAgICAgICAgICAgZVtrXSA9IHg7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBuIC0gYzsKfQo=