Biến Đổi Ma Trận
Bạn được cho hai ma trận $A$ và $B$. Mỗi ma trận gồm đúng $n$ hàng và $m$ cột. Mỗi phần tử của $A$ là $0$ hoặc $1$, còn mỗi phần tử của $B$ ban đầu đều bằng $0$.
Bạn có thể thực hiện một số thao tác trên ma trận $B$. Trong mỗi thao tác, bạn chọn một ma trận con bất kỳ của $B$ có kích thước $2 × 2$ và thay thế mọi phần tử trong ma trận con đó bằng $1$. Nói cách khác, bạn chọn hai số nguyên $x$ và $y$ sao cho $1 ≤ x < n$ và $1 ≤ y < m$, sau đó gán $B_{x, y}$, $B_{x, y + 1}$, $B_{x + 1, y}$ và $B_{x + 1, y + 1}$ thành $1$.
Mục tiêu của bạn là làm cho ma trận $B$ bằng ma trận $A$. Hai ma trận $A$ và $B$ bằng nhau khi và chỉ khi mọi phần tử của ma trận $A$ bằng phần tử tương ứng của ma trận $B$.
Hãy kiểm tra xem có thể làm cho hai ma trận này bằng nhau hay không. Nếu có thể, bạn cần đưa ra một chuỗi các thao tác biến đổi $B$ thành $A$. Lưu ý rằng bạn không cần tối thiểu hóa số lượng thao tác.
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên $n$ và $m$ ($2 ≤ n, m ≤ 50$).
$n$ dòng tiếp theo, mỗi dòng chứa $m$ số nguyên mô tả ma trận $A$. Số thứ $j$ ở dòng thứ $i$ là $A_{i, j}$ ($A_{i, j} \in {0, 1}$).
Kết quả
Nếu không thể làm cho $B$ bằng $A$, in ra số nguyên $-1$.
Nếu có thể, in ra một chuỗi thao tác biến đổi $B$ thành $A$ theo định dạng: dòng đầu tiên chứa một số nguyên $k$, là số lượng thao tác; $k$ dòng tiếp theo, mỗi dòng chứa hai số nguyên $x$ và $y$ tương ứng với thao tác (gán $B_{x, y}$, $B_{x, y + 1}$, $B_{x + 1, y}$ và $B_{x + 1, y + 1}$ thành $1$). Điều kiện $0 ≤ k ≤ 2500$ phải được thỏa mãn.
Chấm điểm
Subtask 1 (30 points). $n, m ≤ 4$
Subtask 2 (70 points). $2 ≤ n, m ≤ 50$
Ví dụ
Input
3 3
1 1 1
1 1 1
0 1 1
Output
3
1 1
1 2
2 2
Ghi chú
Chuỗi thao tác trong ví dụ:
Ban đầu ma trận $B$:
0 0 0
0 0 0
0 0 0
Sau thao tác $(1, 1)$:
1 1 0
1 1 0
0 0 0
Sau thao tác $(1, 2)$:
1 1 1
1 1 1
0 0 0
Sau thao tác $(2, 2)$:
1 1 1
1 1 1
0 1 1
Ma trận $B$ thu được hoàn toàn bằng ma trận $A$.