Time limit: 1s
Memory limit: 64MB
Input:
Output:
O matrice se numeste daca este construita recursiv dupa regula:
- Se incepe cu o matrice de dimensiune , primul element al matricei este colorat alb
- Fie , unde este matricea generata la pasul anterior, iar contine toate elementele din matricea originala, inversand culoarea fiecarui element (din alb in negru si invers). La final .
Acest proces se repeta de ori.

Cerință
Fie o matrice . Un subset de elemente din matrice au culoarea schimbata fata de cum ar fi trebuit sa fie. Puteti sa alegeti un drum aproape perfect, astfel incat daca interschimbati culorile elementelor care apartin de drum, tabla sa devina ?
Date de intrare
Pe prima linie se afla , urmat de o matrice patratica cu latura . Fiecare element al matricei este (pentru alb) sau (pentru negru).
Date de ieșire
Se va afisa , lungimea drumului, impreuna cu pozitiile elementelor din drum, fiecare pe cate un rand nou. In cazul in care nu exista solutie, se va afisa .
Restricții și precizări
- Un drum aproape perfect reprezinta o succesiune de pozitii distincte ale matricei, unde oricare elemente adiacente din drum au o latura comuna (pe verticala sau orizontala).
- Se garanteaza ca pentru fiecare element care apartine de drum, vor exista maxim vecini care sunt la randul lor inclusi in drum.
- .
Exemplul 1
stdin
3
1 1 0 1 0 1 1 0
0 0 1 1 0 1 1 1
0 0 1 1 0 1 1 1
1 1 0 1 1 1 0 0
0 0 0 0 1 0 1 1
1 0 1 0 1 0 0 0
0 0 1 1 0 1 0 0
1 1 1 0 0 0 0 1
stdout
37
1 1
2 1
3 1
4 1
5 1
6 1
6 2
7 2
8 2
8 3
8 4
7 4
7 5
7 6
8 6
8 7
8 8
7 8
6 8
5 8
4 8
3 8
2 8
1 8
1 7
1 6
1 5
1 4
1 3
2 3
3 3
4 3
4 4
5 4
5 5
5 6
4 6
Explicație

Exemplul 2
stdin
3
0 1 1 0 1 0 0 1
1 0 1 0 1 1 1 0
1 1 1 1 1 0 1 0
0 0 1 0 1 1 1 1
1 1 1 0 0 1 0 0
0 1 1 1 1 0 1 1
0 0 0 1 1 0 1 1
1 1 1 0 1 0 0 0
stdout
26
3 2
4 2
5 2
5 3
5 4
6 4
7 4
7 3
7 2
8 2
8 3
8 4
8 5
8 6
8 7
7 7
6 7
5 7
4 7
4 6
3 6
3 5
2 5
2 4
2 3
3 3