class AdrenalineRushSolver: def __init__(self, n: int, final_order: list[int]): self.n = n self.final_order = final_order def solve(self) -> list[tuple[int, int]]: overtaken_history = [] for i in range(self.n): ro = self.final_order.index(i) for j in range(ro + 1, self.n): overtaken_history.append((self.final_order[j], i)) for j in range(self.n - 1, ro, -1): overtaken_history.append((i, self.final_order[j])) for j in range(ro, i, -1): overtaken_history.append((i, self.final_order[j - 1])) self.final_order[j], self.final_order[j - 1] = self.final_order[j - 1], self.final_order[j] return overtaken_history[::-1] if __name__ == '__main__': n = int(input()) final_order = list(map(lambda x: int(x) - 1, input().split())) solved = AdrenalineRushSolver(n, final_order).solve() print(len(solved)) for b, a in solved: print(a + 1, b + 1)