# https://yukicoder.me/problems/no/3775 def main(): N, K = map(int, input().split()) P = list(map(int, input().split())) array = [[] for _ in range(K)] for i in range(N): array[i % K].append(P[i]) answer = [] for k in range(K): ar = array[k] for i in range(len(ar)): j = i while j > 0 and ar[j - 1] > ar[j]: answer.append(((j - 1) * K + k, j * K + k)) tmp = ar[j - 1] ar[j - 1 ] = ar[j] ar[j] = tmp j -= 1 ans_array = [] for index in range(N): ans_array.append(array[index % K][index // K]) for i in range(N - 1): if ans_array[i] > ans_array[i + 1]: print(-1) return print(len(answer)) for i, j in answer: print(i + 1, j + 1) if __name__ == "__main__": main()