D. Бросание бумерангов
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Для улучшения умения животных кидать бумеранги, смотритель зоопарка сделал таблицу размером $$$n \times n$$$, поставив мишени в некоторые ее клетки. В каждой строке и в каждом столбце находится не больше $$$2$$$ мишеней. Строки таблицы пронумерованы от $$$1$$$ до $$$n$$$ сверху вниз, столбцы таблицы пронумерованы от $$$1$$$ до $$$n$$$ слева направо.

Для каждого столбца, смотритель зоопарка бросит бумеранг снизу вверх (из под низа таблицы) вдоль этого столбца. Когда бумеранг попадет в любую мишень он оскочит, сделает поворот на $$$90$$$ градусов вправо и продолжит полет вдоль прямой в новом направлении. Бумеранг может попасть в несколько мишеней и не остановится, пока не покинет таблицу.

В этом примере, $$$n=6$$$ и черные крестики обозначают мишени. Бумеранг в столбце $$$1$$$ (синие стрелки) попадет в мишени $$$2$$$ раза, а бумеранг в столбце $$$3$$$ (красные стрелки) попадет в мишени $$$3$$$ раза.

Бумеранг в столбце $$$i$$$ попал в ровно $$$a_i$$$ мишеней перед тем, как улетел за границы таблицы. Известно, что $$$a_i \leq 3$$$.

К сожалению, смотритель зоопарка потерял изначальные позиции мишеней. Поэтому он просит вас найти любое возможное расположение мишеней, которое удовлетворяет условиям на количества попаданий бумерангов для каждого столбца. Если такого расположения не существует, сообщите об этом.

Если существует несколько возможных расположений мишеней, вы можете найти любое.

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

В первой строке находится единственное целое число $$$n$$$ $$$(1 \leq n \leq 10^5)$$$.

В следующей строке находится $$$n$$$ целых чисел $$$a_1,a_2,\ldots,a_n$$$ $$$(0 \leq a_i \leq 3)$$$.

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

Если ни одного возможного расположения мишеней не существует, выведите $$$-1$$$.

Иначе в первой строке выведите единственное целое число $$$t$$$ $$$(0 \leq t \leq 2n)$$$: количество мишеней в вашем расположении.

Затем выведите $$$t$$$ строк. Каждая строка должна содержать два целых числа $$$r$$$ и $$$c$$$ $$$(1 \leq r,c \leq n)$$$, где $$$r$$$ это строка, в которой находится мишень, а $$$c$$$ это столбец, в котором находится мишень. Все мишени должны иметь различные позиции.

В каждой строке и в каждом столбце должно находиться не более двух мишеней.

Примеры
Входные данные
6
2 0 3 0 1 1
Выходные данные
5
2 1
2 5
3 3
3 6
5 6
Входные данные
1
0
Выходные данные
0
Входные данные
6
3 2 2 2 1 1
Выходные данные
-1
Примечание

В первом тесте можно использовать такое же расположение мишеней, как на картинке из условия.

Во втором тесте бумеранг не должен попасть ни в одну мишень, поэтому мы можем расположить $$$0$$$ мишеней.

В третьем тесте следующая конфигурация мишеней удовлетворяет условиям на количества попаданий бумерангов, но не разрешена, потому что строка $$$3$$$ содержит $$$4$$$ мишени.

Можно показать, что для этого теста ни одна из конфигураций не будет удовлетворять условиям на количества попаданий бумерангов.