#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()); vector> groups(k); // chia nhóm for (int i = 0; i < n; i++) groups[i % k].push_back(a[i]); // sort từng nhóm for (int i = 0; i < k; i++) sort(groups[i].begin(), groups[i].end()); // ghép lại vector rebuilt(n); vector idx(k, 0); for (int i = 0; i < n; i++) { int g = i % k; rebuilt[i] = groups[g][idx[g]++]; } // check khả thi if (rebuilt != b) { cout << -1; return 0; } long long ans = 0; // đếm swap từng nhóm for (int i = 0; i < k; i++) { int sz = groups[i].size(); int correct = 0; for (int j = 0; j < sz; j++) { if (groups[i][j] == b[i + j*k]) correct++; } ans += (sz - correct); } cout << ans / 2; }