#include #include #include #include #include using namespace std; class BIT { std::vector bit; int size; public: BIT() { } BIT(int sz) { init(sz); } void init(int sz) { bit = std::vector((size = sz) + 1); } int sum(int i) { int s = 0; while (i > 0) { s += bit[i]; i -= i & -i; } return s; } void add(int i, int x) { while (i <= size) { bit[i] += x; i += i & -i; } } }; int main(int argc, char *argv[]) { 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()); int ans = 0; if (a != b) { for (int i = 0; i < K; ++i) { BIT bit(1024); vector c; for (int j = i; j < N; j += K) { ans += j / K - bit.sum(a[j]); bit.add(a[j], 1); c.push_back(a[j]); } sort(c.begin(), c.end()); for (int j = i; j < N; j += K) { a[j] = c[j/K]; } } if (a != b) { ans = -1; } } cout << ans << endl; return 0; }