/*
Problem link:
Tags:
*/
#include<bits/stdc++.h>
using namespace std;
//#define MULTI
#define ll long long
#define all(x) (x).begin(), (x).end()
void solve() {
ll n, k;
cin >> n >> k;
vector<ll> a(n+1), dp(n+1);
a[0] = 0;
for (ll i = 1; i <= n; i++)
{
cin >> a[i];
a[i] = k*i-a[i];
}
set<pair<ll, ll>> s;
s.insert({0, 1});
ll mx = 1;
for (ll i = 1; i <= n; i++)
{
if(a[i] < 0) continue;
dp[i] = 1;
auto t = s.upper_bound({a[i], 2*n});
if(t != s.begin()) {
dp[i] = (*prev(t)).second+1;
}
mx = max(mx, dp[i]);
s.insert({a[i], dp[i]});
}
cout << n+1-mx << endl;
}
int main(int argc, char **argv)
{
ios::sync_with_stdio(false);
cin.tie(0);
#ifdef MULTI
int t;
cin >> t;
while (t--)
{
solve();
}
#else
solve();
#endif
return 0;
}