Un panou publicitar, de formă dreptunghiulară conţine becuri, unul lângă altul, aliniate pe linii şi coloane.
Fiecare linie şi fiecare coloană are un comutator care schimbă starea tuturor becurilor de pe acea linie sau coloană, din starea în care se află în starea opusă (stins/aprins, aprins/stins). Asupra unui bec nu se poate acţiona individual. Iniţial panoul are toate becurile stinse.
Cerință
Să se realizeze un program care acţionând asupra unui număr minim de linii şi coloane aduce panoul din starea iniţială, la o configuraţie dată, dacă acest lucru este posibil.
Date de intrare
Se vor citi din fişierul becuri.in
, care are următoarea configuraţie:
- pe prima linie două numere naturale, şi , separate prin spaţiu, reprezentând numărul de linii şi de coloane ale panoului;
- pe următoarele linii câte coloane, formate din elementele sau , separate prin spaţiu, reprezentând configuraţia finală a panoului. este codificarea unui bec aprins iar a unui bec stins.
Date de ieșire
Se va afişa o soluţie în fişierul becuri.out
astfel:
- pe prima linie a fişierului indicii coloanelor asupra cărora s-a acţionat, separaţi prin spaţiu.
- pe a doua linie a fişierului indicii linilor asupra cărora s-a acţionat, separaţi prin spaţiu.
Dacă nu se acţionează asupra liniilor sau coloanelor se va afişa pe linia corespunzătoare .
Numerotarea liniilor, respectiv coloanelor începe de la .
Dacă problema nu are soluţie, pe prima linie a fişierului de ieşire se va afişa .
Restricții și precizări
Exemplu
becuri.in
5 6
1 0 1 1 0 1
1 0 1 1 0 1
1 0 1 1 0 1
0 1 0 0 1 0
0 1 0 0 1 0
becuri.out
2 5
1 2 3