O zonă mlăştinoasă are formă dreptunghiulară, având L linii (numerotate de la 1 la L) şi C coloane (numerotate de la 1 la C). Ea este formată din celule cu latura de o unitate. O parte din acestea reprezintă uscat, iar altele reprezintă apă, uscatul fiind codificat cu 0, iar apa cu 1. Se doreşte să se obţină un drum de pe malul de nord spre cel de sud, trecând doar pe uscat. Deplasarea se poate face cu câte o celulă pe linie, pe coloană, sau pe diagonală. Celulele cu apă pot fi transformate în uscat, paraşutând într-un loc cu apă câte un ponton (o plută) de dimensiunea unei celule. Deoarece paraşutarea este periculoasă, se doreşte să avem un număr minim de paraşutări.
Cerința
Scrieţi un program care determină numărul minim de pontoane şi coordonatele acestora.
Date de intrare
Fișierul de intrare lac.in are următoarea structură:
- pe prima linie se află două numere naturale
LşiCseparate de un spaţiu, reprezentând numărul de linii, respectiv de coloane ale zonei; - pe următoarele
Llinii se află câteCvalori binare separate de câte un spatiu, reprezentând configuraţia zonei (0pentru uscat şi1pentru apă)
Date de ieșire
Fișierul de ieșire lac.out va avea următoarea structură:
- pe prima linie un număr natural
min, care reprezintă numărul cerut de pontoane - pe următoarele
minlinii vom avea câte două numere naturale separate de câte un spaţiu, reprezentând coordonatele celorminpontoane (linie şi coloană).
Restricții și precizări
1 ≤ L, C ≤ 100- Soluţia cu număr minim de pontoane poate să nu fie unică. Dacă există mai multe soluţii, se va afişa una singură.
Exemplu:
lac.in
8 9 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
lac.out
2 4 5 7 8