Problem ID:
khoanlo
Points:
2 (partial)
Time limit:
1.0s
Memory limit:
256M
Input:
stdin
Output:
stdout
Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Perl, Python
Có ~N~ tấm kính hình vuông kích thước ~K \times K~ (gồm ~K~ hình vuông đơn vị theo hàng ngang và ~K~ hình vuông đơn vị theo hàng dọc). Tại tâm của mỗi hình vuông đơn vị trên mỗi tấm kính, người ta vẽ các hình tròn có bán kính bằng nhau (với đường nét rất mỏng), sao cho nếu tất cả các hình tròn được khoan thủng thì các vị trí khoan (tạm gọi là cột) là trùng nhau khi xếp các tấm kính thành một chồng, cho dù có một tấm nào đó đã xoay ~90^o, 180^o, 270^o~ theo chiều kim đồng hồ.
Trên mỗi tấm kính, có một số hình tròn được khoan thủng. Chúng được xếp thành một chồng.
Yêu cầu
Hãy chỉ ra một số ít nhất các tấm kính cần được xoay, sao cho trên mỗi cột đều có ít nhất một hình tròn được khoan thủng, hoặc cho biết điều này không thể thực hiện được.
Dữ liệu vào
- Dòng thứ nhất: chứa ~2~ số nguyên ~N, K~ ~1 \leq N \leq 20; 2 \leq K \leq 10)~;
- Dòng thứ ~i~ trong ~N~ dòng tiếp theo chứa ~K \times K~ số ~0, 1~ cho biết trạng thái các hình tròn trên tấm kính thứ ~i~, liệt kê theo hàng ngang, từ trái sang phải và từ trên xuống dưới. Trong đó, số ~1~ ~(0)~ chỉ ra vị trí tương ứng là vòng tròn được khoan thủng (không khoan).
Kết quả ra
- Dòng thứ nhất: chứa số nguyên ~M~ là số tấm kính cần xoay, ~M = -1~ là không có cách xoay.
- Trong trường hợp ~M \geq 0~ thì dòng thứ ~i~ trong ~M~ dòng tiếp theo chứa chỉ số của tấm kính cần xoay và ~1~ (hoặc ~2~, hoặc ~3~) cho biết tấm kính tương ứng cần xoay ~90^o~ (hoặc ~180^o~, hoặc ~270^o~) theo chiều kim đồng hồ.
Lưu ý: Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.
Sample Input
5 3
0 1 0 1 0 0 0 0 0
1 0 0 0 1 0 0 0 0
1 0 0 0 1 0 0 0 1
0 1 0 0 0 0 1 0 0
1 0 0 1 0 0 0 0 0
Sample Output
2
1 2
2 1
Comments