#include #define int long long using namespace std; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) cin >> a[i]; int k; cin >> k; vector b = a; sort(b.begin(), b.end()); int ans = 0; for (int r = 0; r < k; r++) { vector pos; for (int i = r; i < n; i += k) pos.push_back(i); vector cur, tar; for (int idx : pos) { cur.push_back(a[idx]); tar.push_back(b[idx]); } sort(cur.begin(), cur.end()); sort(tar.begin(), tar.end()); if (cur != tar) { cout << -1; return 0; } unordered_map mp; for (int i = 0; i < (int)tar.size(); i++) mp[tar[i]] = i; vector visited(pos.size(), false); int cyc = 0; for (int i = 0; i < (int)pos.size(); i++) { if (visited[i]) continue; int j = i; while (!visited[j]) { visited[j] = true; j = mp[a[pos[j]]]; } cyc++; } ans += (int)pos.size() - cyc; } cout << ans; }