Trong lúc sửa chương trình, Mirko để ý rằng một lỗi trong chương trình có thể liên kết với sự tồn tại của một thứ gọi là "square killers" trong bộ nhớ chương trình.
Bộ nhớ chương trình là một ma trận gồm R dòng và C cột bao gồm các ký tự 0 và 1. Một "square killer" là một ma trận con vuông trong bộ nhớ, gồm nhiều hơn một ký tự, sao cho khi xoay ma trận con đó 180 độ, nó vẫn trông y hệt ma trận con ban đầu. Ví dụ dưới đây là "square killer":
101010
111001
101001
memory
....10
....01
......
killer
......
...00.
...00.
killer
101...
111...
101...
killer
Mirko đang tự hỏi liệu có mối liên kết nào giữa kích thước của "square killer" lớn nhất và lỗi trong chương trình không. Hãy giúp Mirko bằng cách viết một chương trình, cho trước bố cục của bộ nhớ, đưa ra kích thước của "square killer" lớn nhất. Kích thước của "square killer" là số hàng (hoặc cột) mà "killer" bao gồm. Trong ví dụ ở trên, các kích thước của "killer" là 2, 2 và 3, tương ứng.
Input
- Dòng đầu gồm 2 số nguyên ~R~ và ~C~ (R, C <= 300).
- ~R~ dòng tiếp theo, mỗi dòng gồm ~C~ ký tự ('0' hoặc '1').
Output
In ra kích thước lớn nhất của square killer, hoặc -1 nếu không tồn tại
Sample input 1
3 6
101010
111001
101001
Sample output 1
3
Sample input 2
4 5
10010
01010
10101
01001
Sample output 2
3
Bình luận