#include <bits/stdc++.h>
using namespace std;
const int MAXT = 4e6 + 128;
const int MAXN = 500 + 10;
long long dp[MAXT], cnt[MAXT];
vector<int> v[MAXT];
long long fans = LLONG_MAX;
int n, m, maxt, t;
long long sum(int x, int y)
{
long long ans = 0;
for (int i = x; i <= y; ++i)
{
cnt[y] += v[i].size();
ans += v[i].size() * (y - i);
}
return ans;
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; ++i)
{
cin >> t;
v[t].push_back(i);
maxt = max(maxt, t);
}
// sort(t + 1, t + 1 + n);
for (int i = 0; i <= maxt + m; ++i)
{
if (i >= m)
{
long long nsum = sum(i - m + 1, i);
if (dp[i - 1] + cnt[i - 1] <= dp[i - m] + nsum)
{
cnt[i] = cnt[i - 1] + v[i].size();
dp[i] = dp[i - 1] + cnt[i - 1];
}
else
{
dp[i] = dp[i - m] + nsum;
// cnt[i] += v[i].size();
}
}
else
{
dp[i] = (i ? dp[i - 1] + cnt[i - 1] : 0);
cnt[i] = (i ? cnt[i - 1] : 0) + v[i].size();
}
// cout << i << ' ' << dp[i] << ' ' << v[i].size() << endl;
}
// cout << endl;
for (int i = maxt; i <= maxt + m; ++i)
{
fans = min(fans, dp[i]);
}
cout << fans << endl;
return 0;
}
80分玄学没TLE但WA