#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ int n, k; cin >> n >> k; vector a(n), b, d, e(k); rep(i, 0, n) cin >> a[i]; b = a; sort(b.begin(), b.end()); vector> c(k), f; rep(i, 0, n) { int m = i % k; c[m].push_back(a[i]); } f = c; rep(i, 0, k) sort(c[i].begin(), c[i].end()); rep(i, 0, n) { int m = i % k; d.push_back(c[m][e[m]]); e[m]++; } if(d != b) { cout << -1 << endl; return 0; } using P = pair; vector

ans; rep(i, 0, k) { int sz = f[i].size(); vector x(sz); rep(j, 0, sz) x[j] = (f[i][j] - i) / k; rep(j, 0, sz) { if(x[j] == j) continue; int l = j, m = x[j]; while(l < m) { ans.emplace_back(i + l * k, i + (l + 1) * k); swap(x[l], x[l + 1]); l++; } } } cout << ans.size() << endl; if(ans.size()) { for(P p : ans) cout << p.first + 1 << " " << p.second + 1 << endl; } }