M. Last Man Standing
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Компания из n друзей собралась поиграть в многопользовательский шутер в режиме Last Man Standing. Особенность этого режима состоит в том, что после того, как игрока убивают, он не возрождается, а ждёт, когда закончится раунд. Раунд заканчивается, когда в живых остаётся лишь один игрок.

Вам предоставили нотариально заверенный скриншот текущих результатов боя, сделанный в ходе первого раунда игры. На нём отражена информация о том, сколько убийств совершил каждый игрок. Вы хотите проверить, не является ли он подделкой, т. е. могла ли в игре действительно возникнуть такая ситуация.

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

В первой строке дано единственное целое число n (1 ≤ n ≤ 200000) — количество игроков.

Во второй строке дано n целых чисел ai через пробел (0 ≤ ai ≤ 109) — количества убийств, совершённых каждым игроком. Эти числа упорядочены по невозрастанию.

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

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

Иначе в первой строке выведите «YES» (без кавычек), а затем выведите лог убийств в раунде, состоящий из k пар чисел, где k — это количество убийств, совершённых на момент создания скриншота. Каждая пара чисел в логе должна состоять из номера игрока, совершившего убийство, и номера убитого игрока, именно в этом порядке, а записи в логе должны быть упорядочены хронологически. Если существует несколько корректных логов убийств, выведите любой из них.

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