#include <bits/stdc++.h>
using namespace std;
vector<int> v[30005];
string s[105];
int id;
void func1(int i, int j) {
  int sy, sz, fl = 0;
  for (int y = i; y - i < 2; y++) {
    for (int z = j; z - j < 2; z++) {
      if (s[y][z] == '1') {
        s[y][z] = '0';
        v[id].push_back(y + 1);
        v[id].push_back(z + 1);
        fl = 1;
        sy = y;
        sz = z;
        break;
      }
    }
    if (fl) break;
  }
  fl = 0;
  for (int y = i; y - i < 2; y++) {
    for (int z = j; z - j < 2; z++) {
      if (s[y][z] == '0' and !(y == sy and z == sz))
        s[y][z] = '1', v[id].push_back(y + 1), v[id].push_back(z + 1), fl++;
      if (fl == 2) break;
    }
    if (fl == 2) break;
  }
  id++;
}
void func2(int i, int j) {
  int sy, sz, fl = 0;
  for (int y = i; y - i < 2; y++) {
    for (int z = j; z - j < 2; z++) {
      if (s[y][z] == '1') {
        s[y][z] = '0';
        v[id].push_back(y + 1);
        v[id].push_back(z + 1);
        fl = 1;
        sy = y;
        sz = z;
        break;
      }
    }
    if (fl) break;
  }
  for (int y = i; y - i < 2; y++) {
    for (int z = j; z - j < 2; z++) {
      if (s[y][z] == '0' and !(y == sy and z == sz))
        s[y][z] = '1', v[id].push_back(y + 1), v[id].push_back(z + 1);
    }
  }
  id++;
}
void func3(int i, int j) {
  for (int y = i; y - i < 2; y++) {
    for (int z = j; z - j < 2; z++) {
      if (s[y][z] == '1')
        s[y][z] = '0', v[id].push_back(y + 1), v[id].push_back(z + 1);
    }
  }
  id++;
}
void func4(int i, int j) {
  int fl = 0;
  for (int y = i; y - i < 2; y++) {
    for (int z = j; z - j < 2; z++) {
      if (s[y][z] == '1')
        s[y][z] = '0', v[id].push_back(y + 1), v[id].push_back(z + 1), fl++;
      if (fl == 3) break;
    }
    if (fl == 3) break;
  }
  id++;
}
void func(int i, int j) {
again:
  int o = 0;
  if (s[i][j] == '1') o++;
  if (s[i][j + 1] == '1') o++;
  if (s[i + 1][j] == '1') o++;
  if (s[i + 1][j + 1] == '1') o++;
  if (o == 0)
    return;
  else if (o == 3) {
    func3(i, j);
  } else if (o == 2) {
    func2(i, j);
    goto again;
  } else if (o == 1) {
    func1(i, j);
    goto again;
  } else if (o == 4) {
    func4(i, j);
    goto again;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  int t;
  cin >> t;
  while (t--) {
    for (int i = 0; i < 30005; i++) v[i].clear();
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++) cin >> s[i];
    id = 0;
    if (n % 2 == 0 and m % 2 == 0) {
      for (int i = 0; i < n - 1; i += 2) {
        for (int j = 0; j < m - 1; j += 2) {
          func(i, j);
        }
      }
    } else if (n % 2 == 0 and m % 2 == 1) {
      for (int i = 0; i < n - 1; i += 2) {
        for (int j = 0; j < m - 1; j += 2) {
          func(i, j);
        }
      }
      for (int i = 0; i < n - 1; i += 2) func(i, m - 2);
    } else if (n % 2 == 1 and m % 2 == 0) {
      for (int i = 0; i < n - 1; i += 2) {
        for (int j = 0; j < m - 1; j += 2) {
          func(i, j);
        }
      }
      for (int i = 0; i < m - 1; i += 2) func(n - 2, i);
    } else if (n % 2 == 1 and m % 2 == 1) {
      int si, sj, zero = 0;
      for (int i = 0; i < 3; i++)
        for (int j = m - 3; j < m; j++) {
          if (s[i][j] == '0') {
            zero++;
            if (zero == 1) si = i, sj = j;
          }
        }
      if (zero == 0) {
        int i = 0, j = m - 3;
        func4(i, j);
        func(i, j + 1);
        func(i + 1, j);
        func(i + 1, j + 1);
      } else if (zero < 3) {
        int i = si, j = sj;
        if (i == 2) i--;
        if (j == m - 1) j--;
        func(i, j);
        for (int y = 0; y < 2; y++) {
          for (int z = m - 3; z < m - 1; z++) {
            if (!(y == i and z == j)) func(y, z);
          }
        }
      } else {
        int i = 0, j = m - 3;
        func(i, j);
        func(i, j + 1);
        func(i + 1, j);
        func(i + 1, j + 1);
      }
      for (int i = 0; i < 3; i += 2) {
        for (int j = 0; j < m - 4; j += 2) {
          func(i, j);
        }
      }
      for (int i = 3; i < n - 1; i += 2) {
        for (int j = 0; j < m - 1; j += 2) {
          func(i, j);
        }
      }
      for (int i = 3; i < n - 1; i += 2) func(i, m - 2);
    }
    cout << id << "\n";
    for (int i = 0; i < id; i++) {
      for (int j = 0; j < 6; j++) cout << v[i][j] << " ";
      cout << "\n";
    }
  }
}
