B. Инвариантность дерева
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Деревом размера n называется неориентированный связный граф из n вершин без циклов.

Рассмотрим некоторое дерево из n вершин. Назовем дерево инвариантным относительно перестановки p = p1p2... pn, если для любых двух вершин дерева u и v выполняется утверждение: «Вершины u и v соединены ребром тогда и только тогда, когда вершины pu и pv соединены ребром».

Вам дана перестановка p размера n. Найдите какое-нибудь дерево размера n, инвариантное относительно данной перестановки.

Входные данные

В первой строке дано число n (1 ≤ n ≤ 105) — размер перестановки (совпадающий с размером искомого дерева).

Во второй строке дана сама перестановка pi (1 ≤ pi ≤ n).

Выходные данные

Если искомого дерева не существует, то выведите «NO» (без кавычек).

Иначе выведите «YES», а затем выведите n - 1 строку, в каждой из которых находится по два целых числа — концы очередного ребра искомого дерева. Вершины нумеруются с единицы, порядок следования рёбер и порядок следования вершин внутри ребра не имеет значения.

Если решений несколько, выведите любое из них.

Примеры
Входные данные
4
4 3 2 1
Выходные данные
YES
4 1
4 2
1 3
Входные данные
3
3 1 2
Выходные данные
NO
Примечание

В первом тесте из условия, при применении к ребру перестановки, ребро (4, 1) перейдет в ребро (1, 4), ребро (4, 2) перейдет в ребро (1, 3), а ребро (1, 3) перейдет в ребро (4, 2). Все эти ребра есть в ответе.

Можно заметить, что во втором тесте из условия, ни одно дерево не подходит под ограничения.