#include using namespace std; const int mod = 1e9+7; const int maxn = 1e5 + 1; #define pii pair #define ll long long #define pq priority_queue #define se second #define fi first int n, k; vector a; void solve() { cin >> n >> k; a.resize(n); for (int i = 0; i < n; i++) cin >> a[i]; vector b = a; sort(b.begin(), b.end()); unordered_map> pos; for(int i = 0; i < n; i++){ pos[b[i]].push(i); } vector vitri(n); for (int i = 0; i < n; i++) { int p = pos[a[i]].front(); pos[a[i]].pop(); if(p%k != i%k) { cout << 0; return; } vitri[i] = p; } vector gaplai(n, false); int ans = 0; for (int i = 0; i < n; i++) { if(gaplai[i] || vitri[i] == i) continue; int len = 0, cur = i; while(!gaplai[cur]) { gaplai[cur] = true; len++; cur = vitri[cur]; } ans += len - 1; } cout << ans << '\n'; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); solve(); return 0; }