Cho một bảng vuông kích thước , các hàng được đánh số từ đến từ trên xuống dưới và các cột được đánh số từ đến từ trái sang phải. Mỗi ô nằm ở tại hàng , cột của bảng có thể được tô bởi một trong hai màu trắng hoặc đen và sẽ mang màu mới nhất được tô.
Ban đầu, mọi ô của bảng đều được tô màu trắng. Bạn có thể thực hiện thao tác tô màu như sau bằng cách chọn một ô :
- Tô màu cho các ô nằm trên đoạn nối hai ô và đoạn nối hai ô .
- Việc tô màu cho các ô được thực hiện bằng cách tô màu trái ngược với màu hiện tại của ô đó ô màu trắng được tô màu đen và ngược lại
Lưu ý rằng việc thực hiện như trên được tính là một lần thao tác.
Ví dụ, hình sau minh họa thao tác tô màu với các ô được chọn theo thứ tự: , , , :
Yêu cầu: Cho một bảng vuông với mỗi ô được tô màu trắng hoặc đen. Nhiệm vụ của bạn hãy xác định số lần thao tác ít nhất để thu được bảng vuông đó. Có thể nhận thấy rằng với mọi bảng vuông, luôn luôn tồn tại ít nhất một chuỗi các thao tác phù hợp.
Input
- Dòng đầu tiên chứa số nguyên .
- Bảng vuông được mô tả trong tiếp theo, mỗi dòng chứa một chuỗi độ dài chỉ chứa kí tự 0 tương ứng màu trắng hoặc ký tự 1 tương ứng màu đen.
Output
- In ra số lần thao tác ít nhất để thu được bảng vuông đã cho.
Examples
Sample Input
5
01110
10010
10001
10011
11110
Sample Output
4
Scoring
- Subtask với số điểm:
- Subtask với số điểm:
- Subtask với số điểm: Không có ràng buộc gì thêm
Comments