В Уральском государственном университете n компьютерных
классов. В субботу, 9 октября, было решено провести в университете сразу n
соревнований по программированию подряд!
Организаторы составили расписание — таблицу размером n × n из
нулей и единиц. j-е число в i-й строке равно единице, если
j-й класс задействован в проведении i-го соревнования, и нулю в противном случае.
В пятницу уборщица Зина напомнила организаторам, что после
соревнований ей нужно прибраться в классах.
Она сказала, что сразу же после завершения первого
соревнования хочет прибраться в первом компьютерном классе, после завершения
второго соревнования — во втором классе, и так далее. Конечно, ни во 
время уборки класса, ни после неё в этом классе уже не могут проходить
соревнования.
Председатель жюри согласился с Зиной. За одну операцию
он может выбрать пару различных целых чисел i и j (1 ≤ i, j ≤ n),
поменять в таблице местами i-ю и j-ю строку, после чего сразу же поменять местами i-й и j-й
столбец. До вечера председатель успеет выполнить не более двухсот таких операций.
Сможет ли он получить расписание, устраивающее Зину?
Исходные данные
В первой строке записано целое число n (2 ≤ n ≤ 100).
Далее следует расписание соревнований: n строк по n чисел в каждой.
Результат
Если председатель не успеет исправить расписание, выведите
«−1». В противном случае выведите в первой строке количество операций t, а затем
выведите t строк по два числа в каждой, задающие числа i и j, которые
должен выбрать председатель для очередной операции. Если есть несколько способов исправить расписание, выведите любой из них.
Примеры
| исходные данные | результат | 
|---|
| 3
0 0 0
1 1 0
1 1 0
 | 1
1 3
 | 
| 3
1 1 1
1 1 0
1 0 0
 | -1 | 
Автор задачи: Алексей Самсонов
Источник задачи: XV Открытый командный чемпионат УрГУ по программированию