#include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int scnt(vector &vec){ int cnt = 0; for (int i = 0; i < vec.size() - 1; i++){ for (int j = 0; j < vec.size() - 1 - i; j++){ if (vec[j] > vec[j+1]){ swap(vec[j], vec[j+1]); cnt++; } } } return cnt; } int main() { int n, k, ans = 0; cin >> n >> k; vector> before(k, vector (ceil((double)n/k))); vector after(n); for (int i = 0; i < n; i++) cin >> before[i%k][i/k]; for (int i = 0; i < k; i++){ ans += scnt(before[i]); } for (int i = 0; i < n-1; i++) { if (before[i%k][i/k] > before[(i+1)%k][(i+1)/k]) { cout << -1 << endl; return 0; } } cout << ans << endl; }