#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; vector a(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_back(i); unordered_map idx; vector to(n); for(int i = 0; i < n; i++) { int p = pos[a[i]][idx[a[i]]++]; if(p % k != i % k) { cout << -1; return 0; } to[i] = p; } vector vis(n, false); int ans = 0; for(int i = 0; i < n; i++) { if(vis[i] || to[i] == i) continue; int len = 0, cur = i; while(!vis[cur]) { vis[cur] = true; cur = to[cur]; len++; } ans += len - 1; } cout << ans; }