Задача №112763. 23 февраля

Сегодня 23 Февраля, поэтому Малыш решил устроить парад своих солдатиков. Он уже достал их из коробки, расположил в одну линию и теперь хочет построить их по росту в порядке невозрастания слева направо.

В честь праздника Малыш решил, что будет менять местами тех и только тех солдатиков, между которыми стоят ровно \(2\) или ровно \(3\) других солдатика.

Малышу совершенно не обязательно построить солдатиков за минимально возможное количество перестановок, но ему обязательно нужно это сделать не более чем за \(23\,000\) перестановок, иначе он не успеет до сна.

Помогите Малышу справиться с этой ответственной задачей.

Формат входных данных

В первой строке входного файла указано целое число \(N\) (\(2 \leq N \leq 100\)) — количество солдатиков у Малыша. Во второй строке через пробел указаны \(N\) положительных целых чисел, каждое из которых не превосходит \(2000\). \(K\)-ое число во второй строке задает рост \(K\)-ого солдатика в исходном построении. Солдатики нумеруются числами от \(1\) до \(N\) слева направо.

Формат выходных данных

Если расположить солдатиков требуемым образом невозможно, то в выходной файл требуется вывести единственное слово "NO" без кавычек.

Если построение осуществимо, то в первой строке выведите единственное слово "YES" без кавычек, а во второй строке выведите требуемое количество действий \(K\) (\(0 \leq K \leq 23\,000\)). Далее нужно вывести \(K\) строк, каждая из которых должна содержать два числа \(X\) и \(Y\), означающих, что Малышу нужно поменять местами солдатиков, стоящих сейчас на \(X\)-ом и \(Y\)-ом местах.

Если есть несколько решений, выведите любое. Обратите внимание, что минимизировать число действий не требуется, главное — чтобы их было не больше \(23\,000\).

Примечание

Решения, работающие при \(N\leq 8\), будут набирать 50 баллов.

Примеры
Входные данные
10
10 9 4 7 6 5 1 3 2 8
Выходные данные
YES
2
10 7
3 7
Входные данные
2
1500 1700
Выходные данные
NO
Сдать: для сдачи задач необходимо войти в систему