#LX0034. 关灯3

关灯3

题目描述

有一个n×nn\times n的灯泡矩阵,一开始有的点是关(00),有的点是开(11)。

你可以每次可以操作一行,或者一列,把这一行/列所有的灯的状态取反,这个操作可以无限次使用。

你还有kk次机会,每次可以把一个位置的灯取反。

问:请构造一个方案,把所有灯关闭,或者报告不可行。

n1000,0k<nn\leq 1000,0\leq k<n

Kitty has n2n^2 lights, which form an n×nn\times n matrix.

One day, Kitty found that some of these lights were on, and some were off. Kitty wants to turn them all off.

To achieve her goal, Kitty can perform three types of operations:

  • (1) Choose a row, reverse the state of this row. It means if a light of this row is on, after this operation, it is now off. If a light of this row is off, after this operation, it is now on.

  • (2) Choose a column, reverse the state of this column. It means if a light of this column is on, after this operation, it is now off. If a light of this column is off, after this operation, it is now on.

  • (3) Choose exactly one light, reverse the state of this light. This operation can only be performed not more than kk times.

For the current state, help Kitty achieve her goal within 3n3n operations.

输入格式

The first line contains two integers n(1n1000),k(0k<n)n(1\leq n\leq 1000),k(0\leq k < n), indicating as described above.

Then nn lines follow, each line has exactly nn numbers, 00 represents that the light is turned off at this time, while 11 represents the opposite.

The yy-th number of the (x+1)(x+1)-th line in input means the light at coordinate (x,y)(x,y).

输出格式

If Kitty can not achieve her goal,print 1-1 in a single line.

Otherwise, print M(0M3n)M(0\leq M\leq 3n) in the first line, indicating the number of operations she needs to perform.

The next MM lines, each line contains 22 integers x,yx,y, separated by white space.

If 1xn,1yn1\leq x\leq n,1\leq y\leq n, it means Kitty will reverse the light at coordinate (x,y)(x,y).

If x=0,1ynx=0,1\leq y\leq n, it means Kitty will reverse all lights at coordinates (z,y)1zn(z,y)1\leq z\leq n.

If 1xn,y=01\leq x\leq n,y=0, it means Kitty will reverse all lights at coordinates (x,z)1zn(x,z)1\leq z\leq n.

If there are multiple answers, print any of them.

2 0
0 1
1 0
2
0 2
2 0
3 1
1 0 0
0 1 0
0 0 1
-1