#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
const int mod = 1e9 + 7;
int vis[N];
int pre[N];
int p[N];
void bfs() {
  queue<int> q;
  q.push(0);
  vis[0] = 1;
  int o = (1 << 4) - 1;
  while (!q.empty()) {
    int x = q.front();
    q.pop();
    for (int i = 0; i < 4; i++) {
      int now = x ^ (o - (1 << i));
      if (!vis[now]) {
        pre[now] = x;
        p[now] = i;
        vis[now] = 1;
        q.push(now);
      }
    }
  }
}
struct node {
  pair<int, int> s[3];
};
int a[N][N];
char s[N][N];
pair<int, int> x[4];
vector<node> ans;
void did(pair<int, int> now) { a[now.first][now.second] ^= 1; }
void calc(int u) {
  if (u == 0) return;
  while (u != 0) {
    int o = p[u];
    int cnt = -1;
    node now;
    for (int i = 0; i < 4; i++)
      if (i != o) {
        now.s[++cnt] = x[i];
        did(x[i]);
      }
    ans.push_back(now);
    u = pre[u];
  }
}
int read() {
  int x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') x = (x << 1) + (x << 3) + c - '0', c = getchar();
  return x * f;
}
int main() {
  bfs();
  int T = read();
  while (T--) {
    int n = read(), m = read();
    for (int i = 1; i <= n; i++) scanf("%s", s[i] + 1);
    for (int i = 1; i <= n; i++)
      for (int j = 1; j <= m; j++) a[i][j] = s[i][j] - '0';
    ans.clear();
    for (int i = 1; i < n; i += 2) {
      for (int j = 1; j < m; j++) {
        x[0] = {i, j};
        x[1] = {i + 1, j};
        x[2] = {i, j + 1};
        x[3] = {i + 1, j + 1};
        calc((a[i][j]) | (a[i + 1][j] << 1) | (a[i][j + 1] << 2) |
             (a[i + 1][j + 1] << 3));
      }
    }
    for (int i = n - 1; i <= n - 1; i++) {
      for (int j = 1; j < m; j++) {
        x[0] = {i, j};
        x[1] = {i + 1, j};
        x[2] = {i, j + 1};
        x[3] = {i + 1, j + 1};
        calc((a[i][j]) | (a[i + 1][j] << 1) | (a[i][j + 1] << 2) |
             (a[i + 1][j + 1] << 3));
      }
    }
    cout << ans.size() << endl;
    for (node now : ans) {
      for (int j = 0; j < 3; j++) {
        cout << now.s[j].first << " " << now.s[j].second << " ";
      }
      cout << endl;
    }
  }
}
