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