module Main; import CPLib.IO; main: IO (); main = ( let (n, k) = (*read_i, *read_i); let p = *read_is(n); let (ans, p) = loop( ([], p), |(ans, p)| let size_before = ans.@size; let (ans, p) = range(0, n-k).fold( (ans, p), |i, (ans, p)| if p.@(i) < p.@(i+k) { (ans, p) }; let ans = ans.push_back((i, i+k)); let v1 = p.@(i); let v2 = p.@(i+k); let p = p.set(i, v2).set(i+k, v1); (ans, p) ); let size_after = ans.@size; if size_before == size_after { break $ (ans, p) }; continue $ (ans, p) ); let sorted = range(0, n-1).check_all(|i| p.@(i) < p.@(i+1)); if !sorted { println $ "-1" } else { println $ ans.@size.to_string;; ans.to_iter.map(|(a, b)| "{} {}\n".format((a+1, b+1)) ).concat_iter.println } );