Задано послідовність чисел a_0, a_1, \dots, a_{n-1}, що складається з попарно різних елементів, кожен з яких належить проміжку [0; n - 1].
Обміном будемо називати операцію (i, j)~(0 \le i, j \le n - 1), яка міняє місцями значення a_i та a_j.
Відсортуйте послідовність у порядку зростання, використовуючи мінімальну кількість обмінів. Виведіть усі виконані обміни.
Перший рядок містить натуральне число n~(n \le 10^6).
Другий рядок містить різних чисел з проміжку [0; n - 1].
У першому рядку виведіть мінімальну кількість обмінів .
У наступних рядках виведіть усі виконані обміни у вигляді пар .
Приклад 1
Приклад 2