#include <bits/stdc++.h>
using namespace std;
void debug_arr(vector<int> &a) {
  int len = a.size();
  for (int i = 0; i < len; ++i) {
    cout << a[i] << " ";
  }
  cout << endl;
}
const int mod = 1e9 + 7;
const int mod1 = 998244353;
vector<string> second;
int n, m, cnt0;
vector<pair<int, int>> ones(int i, int j) {
  vector<pair<int, int>> ans;
  for (int x = i; x < i + 2; ++x) {
    for (int y = j; y < j + 2; ++y) {
      if (second[x][y] == '1') {
        ans.push_back({x, y});
      }
    }
  }
  return ans;
}
vector<pair<int, int>> zeroes(int i, int j) {
  vector<pair<int, int>> ans;
  for (int x = i; x < i + 2; ++x) {
    for (int y = j; y < j + 2; ++y) {
      if (second[x][y] == '0') {
        ans.push_back({x, y});
      }
    }
  }
  return ans;
}
vector<vector<int>> ans;
void print(int i, int j, int ct0, int ct1, vector<int> &temp) {
  vector<pair<int, int>> one = ones(i, j);
  vector<pair<int, int>> zero = zeroes(i, j);
  for (auto itr : one) {
    if (ct1 == 0) break;
    ct1--;
    second[itr.first][itr.second] = '0';
    temp.push_back(itr.first + 1);
    temp.push_back(itr.second + 1);
  }
  for (auto itr : zero) {
    if (ct0 == 0) break;
    ct0--;
    second[itr.first][itr.second] = '1';
    temp.push_back(itr.first + 1);
    temp.push_back(itr.second + 1);
  }
  return;
}
void print1(char ch) { return; }
void block(int i, int j) {
  if (j == m - 1) j--;
  if (i == n - 1) i--;
  cnt0 = (second[i][j] == '0') + (second[i][j + 1] == '0') +
         (second[i + 1][j] == '0') + (second[i + 1][j + 1] == '0');
  vector<int> temp;
  switch (cnt0) {
    case 4:
      break;
    case 3:
      print(i, j, 2, 1, temp);
      ans.push_back(temp);
      temp.clear();
      print(i, j, 2, 1, temp);
      ans.push_back(temp);
      temp.clear();
      print(i, j, 0, 3, temp);
      ans.push_back(temp);
      break;
    case 2:
      print(i, j, 2, 1, temp);
      ans.push_back(temp);
      temp.clear();
      print(i, j, 0, 3, temp);
      ans.push_back(temp);
      break;
    case 1:
      print(i, j, 0, 3, temp);
      ans.push_back(temp);
      temp.clear();
      break;
    case 0:
      print(i, j, 0, 3, temp);
      ans.push_back(temp);
      temp.clear();
      print(i, j, 2, 1, temp);
      ans.push_back(temp);
      temp.clear();
      print(i, j, 2, 1, temp);
      ans.push_back(temp);
      temp.clear();
      print(i, j, 0, 3, temp);
      ans.push_back(temp);
      break;
  }
  return;
}
void solve() {
  cin >> n >> m;
  second.clear();
  second.resize(n);
  for (int i = 0; i < n; ++i) cin >> second[i];
  ans.clear();
  for (int i = 0; i < n; i += 2) {
    for (int j = 0; j < m; j += 2) {
      block(i, j);
    }
  }
  cout << ans.size() << endl;
  for (int i = 0; i < ans.size(); ++i) {
    debug_arr(ans[i]);
  }
  return;
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}
