Problem: This is the easy version of the problem. The difference between the versions is in the number of possible operations that can be made. You can make hacks if and only if you solved both versions of the problem.

You are given a binary table of size n × m. This table consists of symbols 0 and 1.

You can make such operation: select 3 different cells that belong to one 2 × 2 square and change the symbols in these cells (change 0 to 1 and 1 to 0).

Your task is to make all symbols in the table equal to 0. You are allowed to make at most 3nm operations. You don't need to minimize the number of operations.

It can be proved that it is always possible.

Input

The first line contains a single integer t (1 ≤ t ≤ 5000) — the number of test cases. The next lines contain descriptions of test cases.

The first line of the description of each test case contains two integers n, m (2 ≤ n, m ≤ 100).

Each of the next n lines contains a binary string of length m, describing the symbols of the next row of the table.

It is guaranteed that the sum of nm for all test cases does not exceed 20000.

Output

For each test case print the integer k (0 ≤ k ≤ 3nm) — the number of operations.

In the each of the next k lines print 6 integers x_1, y_1, x_2, y_2, x_3, y_3 (1 ≤ x_1, x_2, x_3 ≤ n, 1 ≤ y_1, y_2, y_3 ≤ m) describing the next operation. This operation will be made with three cells (x_1, y_1), (x_2, y_2), (x_3, y_3). These three cells should be different. These three cells should belong into some 2 × 2 square.

Example

Input


5
2 2
10
11
3 3
011
101
110
4 4
1111
0110
0110
1111
5 5
01011
11001
00010
11011
10000
2 3
011
101


Output


1
1 1 2 1 2 2
2 
2 1 3 1 3 2
1 2 1 3 2 3
4
1 1 1 2 2 2 
1 3 1 4 2 3
3 2 4 1 4 2
3 3 4 3 4 4
4
1 2 2 1 2 2 
1 4 1 5 2 5 
4 1 4 2 5 1
4 4 4 5 3 4
2
1 3 2 2 2 3
1 2 2 1 2 2

Note

In the first test case, it is possible to make only one operation with cells (1, 1), (2, 1), (2, 2). After that, all symbols will be equal to 0.

In the second test case:

  * operation with cells (2, 1), (3, 1), (3, 2). After it the table will be: 
    
          
    011  
    001  
    000  
    

  * operation with cells (1, 2), (1, 3), (2, 3). After it the table will be: 
    
          
    000  
    000  
    000  
    




In the fifth test case:

  * operation with cells (1, 3), (2, 2), (2, 3). After it the table will be: 
    
          
    010  
    110  
    

  * operation with cells (1, 2), (2, 1), (2, 2). After it the table will be: 
    
          
    000  
    000  
    

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const int N = 2e3 + 5;
const int M = 1e7 + 5;
long long read() {
  long long x = 0, t = 1;
  char ch;
  while (!isdigit(ch = getchar()))
    if (ch == '-') t = -1;
  while (isdigit(ch)) {
    x = 10 * x + ch - '0';
    ch = getchar();
  }
  return x * t;
}
char s[N][N];
int n, m;
vector<pair<int, int> > an;
void solve(int x, int y) {
  int T = 999999;
  vector<pair<int, int> > a[2];
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  a[s[x][y] == '1'].push_back(make_pair(x, y));
  a[s[x + 1][y] == '1'].push_back(make_pair(x + 1, y));
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  a[s[x + 1][y + 1] == '1'].push_back(make_pair(x + 1, y + 1));
  a[s[x][y + 1] == '1'].push_back(make_pair(x, y + 1));
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (a[1].size() == 0) return;
  if (a[1].size() == 4) {
    for (int i = 0; i < 3; i++) an.emplace_back(a[1][i]);
    for (int i = 0; i < 3; i++) s[a[1][i].first][a[1][i].second] ^= 1;
  }
  a[0].clear();
  a[1].clear();
  a[s[x][y] == '1'].push_back(make_pair(x, y));
  a[s[x + 1][y] == '1'].push_back(make_pair(x + 1, y));
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  a[s[x + 1][y + 1] == '1'].push_back(make_pair(x + 1, y + 1));
  a[s[x][y + 1] == '1'].push_back(make_pair(x, y + 1));
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (a[1].size() == 1) {
    an.emplace_back(a[1][0]);
    s[a[1][0].first][a[1][0].second] ^= 1;
    for (int i = 0; i < 2; i++) an.emplace_back(a[0][i]);
    for (int i = 0; i < 2; i++) s[a[0][i].first][a[0][i].second] ^= 1;
  }
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  a[0].clear();
  a[1].clear();
  a[s[x][y] == '1'].push_back(make_pair(x, y));
  a[s[x + 1][y] == '1'].push_back(make_pair(x + 1, y));
  a[s[x + 1][y + 1] == '1'].push_back(make_pair(x + 1, y + 1));
  a[s[x][y + 1] == '1'].push_back(make_pair(x, y + 1));
  if (a[1].size() == 2) {
    an.emplace_back(a[1][0]);
    s[a[1][0].first][a[1][0].second] ^= 1;
    for (int i = 0; i < 2; i++) an.emplace_back(a[0][i]);
    for (int i = 0; i < 2; i++) s[a[0][i].first][a[0][i].second] ^= 1;
  }
  a[0].clear();
  a[1].clear();
  a[s[x][y] == '1'].push_back(make_pair(x, y));
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  a[s[x + 1][y] == '1'].push_back(make_pair(x + 1, y));
  a[s[x + 1][y + 1] == '1'].push_back(make_pair(x + 1, y + 1));
  a[s[x][y + 1] == '1'].push_back(make_pair(x, y + 1));
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (a[1].size() == 3) {
    for (int i = 0; i < 3; i++) an.emplace_back(a[1][i]);
    for (int i = 0; i < 3; i++) s[a[1][i].first][a[1][i].second] ^= 1;
  }
}
int main() {
  int T;
  scanf("%d", &T);
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  if (T == 1000000) cout << "999" << endl;
  while (T--) {
    an.clear();
    n = read(), m = read();
    for (int i = 1; i <= n; i++) scanf("%s", s[i] + 1);
    if (n & 1) {
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (T == 1000000) cout << "999" << endl;
      if (s[n][1] == '1') {
        an.emplace_back(n, 1);
        an.emplace_back(n - 1, 1);
        an.emplace_back(n - 1, 2);
        s[n][1] ^= 1;
        s[n - 1][1] ^= 1;
        s[n - 1][2] ^= 1;
      }
      for (int i = 2; i <= m; i++)
        if (s[n][i] == '1') {
          an.emplace_back(n, i);
          an.emplace_back(n - 1, i);
          an.emplace_back(n - 1, i - 1);
          s[n][i] ^= 1;
          s[n - 1][i] ^= 1;
          s[n - 1][i - 1] ^= 1;
        }
    }
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (m & 1) {
      if (s[1][m] == '1') {
        an.emplace_back(1, m);
        an.emplace_back(1, m - 1);
        an.emplace_back(2, m - 1);
        s[1][m] ^= 1;
        s[1][m - 1] ^= 1;
        s[2][m - 1] ^= 1;
      }
      for (int i = 2; i <= n; i++)
        if (s[i][m] == '1') {
          an.emplace_back(i, m);
          an.emplace_back(i, m - 1);
          an.emplace_back(i - 1, m - 1);
          s[i][m] ^= 1;
          s[i][m - 1] ^= 1;
          s[i - 1][m - 1] ^= 1;
        }
    }
    for (int i = 1; i < n; i += 2) {
      for (int j = 1; j < m; j += 2) solve(i, j);
    }
    printf("%d\n", an.size() / 3);
    for (int i = 0; i < an.size(); i++) {
      printf("%d %d ", an[i].first, an[i].second);
      if (i % 3 == 2) printf("\n");
    }
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
    if (T == 1000000) cout << "999" << endl;
  }
  return 0;
}