#include <bits/stdc++.h>
using namespace std;
int main() {
  int a;
  cin >> a;
  for (int i = 0; i < a; ++i) {
    int n;
    cin >> n;
    int m;
    cin >> m;
    string exa = "01";
    char zer = exa[0];
    char on = exa[1];
    vector<string> num;
    for (int i = 0; i < n; ++i) {
      string l;
      cin >> l;
      num.push_back(l);
    }
    int tn = 0;
    int tm = 0;
    if (n % 2 == 1) {
      tn = 1;
      n = n + 1;
      string O;
      for (int az = 0; az < m; ++az) {
        O.push_back(zer);
      }
      num.push_back(O);
    }
    if (m % 2 == 1) {
      tm = 1;
      m = m + 1;
      for (int az = 0; az < num.size(); ++az) {
        num[az].push_back(zer);
      }
    }
    vector<pair<int, int>> lost;
    for (int q = 0; q < n / 2; ++q) {
      for (int w = 0; w < m / 2; ++w) {
        int it1 = q * 2;
        int it2 = w * 2;
        int chck = 0;
        if (num[it1][it2] == on) chck = chck + 1;
        if (num[it1][it2 + 1] == on) chck = chck + 1;
        if (num[it1 + 1][it2] == on) chck = chck + 1;
        if (num[it1 + 1][it2 + 1] == on) chck = chck + 1;
        int div = chck % 2;
        char divs;
        if (div == 0)
          divs = zer;
        else
          divs = on;
        if (chck > 0) {
          if (num[it1][it2] != divs) {
            pair<int, int> p;
            p.first = it1 + 1;
            p.second = it2 + 1;
            lost.push_back(p);
            --p.first;
            lost.push_back(p);
            ++p.first;
            --p.second;
            lost.push_back(p);
          }
          if (num[it1 + 1][it2 + 1] != divs) {
            pair<int, int> p;
            p.first = it1;
            p.second = it2;
            lost.push_back(p);
            ++p.first;
            lost.push_back(p);
            --p.first;
            ++p.second;
            lost.push_back(p);
          }
          if (num[it1 + 1][it2] != divs) {
            pair<int, int> p;
            p.first = it1 + 1;
            p.second = it2 + 1;
            lost.push_back(p);
            --p.first;
            lost.push_back(p);
            --p.second;
            lost.push_back(p);
          }
          if (num[it1][it2 + 1] != divs) {
            pair<int, int> p;
            p.first = it1 + 1;
            p.second = it2 + 1;
            lost.push_back(p);
            --p.second;
            lost.push_back(p);
            --p.first;
            lost.push_back(p);
          }
        }
      }
    }
    int y = 0;
    cout << lost.size() / 3 << "\n";
    for (int o = 0; o < lost.size(); ++o) {
      if (lost[o].first == n - 1 && tn == 1) {
        lost[o].first = n - 3;
      }
      if (lost[o].second == m - 1 && tm == 1) {
        lost[o].second = m - 3;
      }
      cout << lost[o].first + 1 << " " << lost[o].second + 1 << " ";
      ++y;
      if (y % 3 == 0) cout << "\n";
    }
  }
  return 0;
}
