foc

Time limit: 1s Memory limit: 128MB Input: Output:

Satul Binăreni se află în pericol în urma incendiilor provocate în ultima lună. Acesta este reprezentat printr-o matrice binară cu NN linii și MM coloane. Toate celulele care au luat foc sunt reprezentate prin valoarea 00. Toate celulele în care nu este produs un incendiu, reprezentate prin valori de 11, 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:

  1. se află la marginea satului (pe linia 11, respectiv NN sau pe coloana 11, respectiv MM a matricei);
  2. cel puțin una din cele 44 celule vecine pe direcțiile NN, VV, SS și EE 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 xx și toate celulele care au luat for pe o coloană yy, plasându-se la intersecția acestora, în celula (x,y)(x, y). 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 xx, respectiv elementele de pe coloana yy vor căpăta valoarea 11.

Cerință

Având în vedere că Gosu își poate folosi superputerea o singură dată, aflați toate perechile de coordonate (x,y)(x, y) 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 NN și MM, separate printr-un spațiu, reprezentând dimensiunile matricei.
Pe următoarele NN linii se află câte MM valori de 00 sau 11, 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 1-1.

Restricții și precizări

  • 3N,M1033 \leq N, M \leq 10^3;
  • Ai,j{0,1},1iN,1jMA_{i,j} \in \{0,1\}, 1 \leq i \leq N, 1 \leq j \leq M;
  • Se garantează că există cel puțin o casă care se află în pericol;
  • Pentru 30 de puncte, 1N,M1001 \leq N, M \leq 100.

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 99 case, dintre care doar 66 sunt ”safe”. Casele aflate în pericol sunt situate pe celulele (2,2)(2, 2), (5,4)(5, 4), respectiv (6,7)(6, 7). Soluția conține 77 perechi de coordonate, afișate în ordine lexicografică. Dacă alege, spre exemplu, celula (5,1)(5, 1), Gosu va stinge focul în:

  • celula vecină din VV a casei din celula (2,2)(2, 2);
  • celulele vecine din VV, respectiv EE ale casei situate pe (5,4)(5, 4);
  • celula vecină din NN a ultimei case.

Toți acești vecini devin, la rândul lor, ”safe”.
Pe linia 77 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: (7,3)(7, 3). 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ă 33 case aflate în pericol, în celulele (2,2)(2, 2), (5,5)(5, 5), respectiv (8,8)(8, 8). Nu există nicio pereche de coordonate pe care Gosu se poate plasa, astfel încât să salveze toate cele 33 case.

Log in or sign up to be able to send submissions!