Satul Binăreni se află în pericol în urma incendiilor provocate în ultima lună. Acesta este reprezentat printr-o matrice binară cu linii și coloane. Toate celulele care au luat foc sunt reprezentate prin valoarea . Toate celulele în care nu este produs un incendiu, reprezentate prin valori de , conțin, inițial, câte o casă a unui sătean.
O celulă este considerată "safe" dacă nu a luat foc și se află într-una din cele două situații de mai jos:
- se află la marginea satului (pe linia , respectiv sau pe coloana , respectiv a matricei);
- cel puțin una din cele celule vecine pe direcțiile , , și sunt "safe".
Gosu, cel mai renumit pompier din sat, își dorește să salveze toate casele care nu se află în celule "safe", folosindu-și superputerea: acesta poate stinge o singură dată focul din toate celulele care au luat foc pe o linie și toate celulele care au luat for pe o coloană , plasându-se la intersecția acestora, în celula . Acesta se poate plasa atât pe o celulă cu incendiu, cât și pe o celulă care conține o casă. Astfel, după utilizarea superputerii sale, toate elementele de pe linia , respectiv elementele de pe coloana vor căpăta valoarea .
Cerință
Având în vedere că Gosu își poate folosi superputerea o singură dată, aflați toate perechile de coordonate posibile pe care se poate plasa acesta, astfel încât să salveze toate casele care sunt în pericol.
Date de intrare
Pe prima linie a intrării se găsesc două numere întregi și , separate printr-un spațiu, reprezentând dimensiunile matricei.
Pe următoarele linii se află câte valori de sau , separate prin spații, reprezentând descrierea matricei satului.
Date de ieșire
În consolă se vor afișa, pe linii diferite și separate printr-un spațiu, coordonatele celulelor pe care se poate plasa Gosu pentru a salva toate casele. Perechile de coordonate vor fi afișate în ordine lexicografică. Dacă nu există o soluție, se va afișa .
Restricții și precizări
- ;
- ;
- Se garantează că există cel puțin o casă care se află în pericol;
- Pentru 30 de puncte, .
Exemplul 1
stdin
7 8
0 0 0 0 1 1 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 1
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
stdout
5 1
5 2
5 3
6 1
6 2
6 3
7 3
Explicație
În primul exemplu, satul este alcătuit din case, dintre care doar sunt ”safe”. Casele aflate în pericol sunt situate pe celulele , , respectiv . Soluția conține perechi de coordonate, afișate în ordine lexicografică. Dacă alege, spre exemplu, celula , Gosu va stinge focul în:
- celula vecină din a casei din celula ;
- celulele vecine din , respectiv ale casei situate pe ;
- celula vecină din a ultimei case.
Toți acești vecini devin, la rândul lor, ”safe”.
Pe linia există o singură celulă din care Gosu poate stinge focul în cel puțin una din celulele vecine ale fiecărei case aflate în pericol: . După folosirea superputerii sale din această celulă, matricea devine:
Exemplul 2
stdin
9 9
0 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0
stdout
-1
Explicație
Există case aflate în pericol, în celulele , , respectiv . Nu există nicio pereche de coordonate pe care Gosu se poate plasa, astfel încât să salveze toate cele case.