#include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int testCases = 1;     cin >> testCases;     while (testCases--) {       long long int n, m;       cin >> n >> m;       vector<string> array(n);       vector<pair<long long int, long long int>> sol;       for (int i = 0; i < n; ++i) cin >> array[i];       for (int i = 0; i < n - 1; ++i) {         for (int j = 0; j < m - 1; ++j) {           if (array[i][j] ==  0  && array[i][j + 1] ==  0 ) continue;           if (array[i][j] ==  1  && array[i][j + 1] ==  1 ) {             sol.push_back({i + 1, j + 1});             sol.push_back({i + 1, j + 2});             sol.push_back({i + 2, j + 1});             array[i][j] =  0 ;             array[i][j + 1] =  0 ;             if (array[i + 1][j] ==  0 )               array[i + 1][j] =  1 ;             else               array[i + 1][j] =  0 ;           } else if (array[i][j] ==  0  && array[i][j + 1] ==  1 ) {             sol.push_back({i + 1, j + 2});             sol.push_back({i + 2, j + 1});             sol.push_back({i + 2, j + 2});             array[i][j + 1] =  0 ;             if (array[i + 1][j] ==  0 )               array[i + 1][j] =  1 ;             else               array[i + 1][j] =  0 ;             if (array[i + 1][j + 1] ==  0 )               array[i + 1][j + 1] =  1 ;             else               array[i + 1][j + 1] =  0 ;           } else {             sol.push_back({i + 1, j + 1});             sol.push_back({i + 2, j + 1});             sol.push_back({i + 2, j + 2});             array[i][j] =  0 ;             if (array[i + 1][j] ==  0 )               array[i + 1][j] =  1 ;             else               array[i + 1][j] =  0 ;             if (array[i + 1][j + 1] ==  0 )               array[i + 1][j + 1] =  1 ;             else               array[i + 1][j + 1] =  0 ;           }         }       }       for (int j = 0; j < m - 1; ++j) {         if (array[n - 1][j] ==  0  && array[n - 1][j + 1] ==  0 ) continue;         if (array[n - 1][j] ==  0  && array[n - 1][j + 1] ==  1 ) {           sol.push_back({n - 1, j + 1});           sol.push_back({n - 1, j + 2});           sol.push_back({n, j + 2});           sol.push_back({n - 1, j + 2});           sol.push_back({n, j + 1});           sol.push_back({n, j + 2});           sol.push_back({n - 1, j + 1});           sol.push_back({n, j + 1});           sol.push_back({n, j + 2});           array[n - 1][j + 1] =  0 ;         } else if (array[n - 1][j] ==  1  && array[n - 1][j + 1] ==  0 ) {           sol.push_back({n - 1, j + 1});           sol.push_back({n - 1, j + 2});           sol.push_back({n, j + 1});           sol.push_back({n - 1, j + 2});           sol.push_back({n, j + 1});           sol.push_back({n, j + 2});           sol.push_back({n - 1, j + 1});           sol.push_back({n, j + 1});           sol.push_back({n, j + 2});           array[n - 1][j] =  0 ;         } else {           sol.push_back({n - 1, j + 1});           sol.push_back({n - 1, j + 2});           sol.push_back({n, j + 1});           sol.push_back({n - 1, j + 1});           sol.push_back({n - 1, j + 2});           sol.push_back({n, j + 2});           array[n - 1][j] = array[n - 1][j + 1] =  0 ;         }       }       cout << sol.size() / 3 << endl;       for (int i = 0; i < sol.size(); i += 3) {         cout << sol[i].first <<     << sol[i].second <<    ;         cout << sol[i + 1].first <<     << sol[i + 1].second <<    ;         cout << sol[i + 2].first <<     << sol[i + 2].second << endl;         ;       }     }   }