#include <bits/stdc++.h>
using namespace std;
const int M = 2e6 + 10;
int T, n, m;
char a[210][210];
int Map[210][210];
int main() {
  scanf("%d", &T);
  while (T--) {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
      getchar();
      for (int j = 1; j <= n; j++) {
        scanf("%c", &a[i][j]);
      }
    }
    for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= n; j++) {
        if ((i != 1 || j != 1) && (i != n || j != n)) Map[i][j] = a[i][j] - '0';
      }
    }
    if (Map[1][2] == Map[2][1]) {
      if (Map[1][2] == 1) {
        printf("%d\n", Map[n - 1][n] + Map[n][n - 1]);
        if (Map[n - 1][n] == 1) printf("%d %d\n", n - 1, n);
        if (Map[n][n - 1] == 1) printf("%d %d\n", n, n - 1);
      } else {
        printf("%d\n", 2 - (Map[n - 1][n] + Map[n][n - 1]));
        if (Map[n - 1][n] == 0) printf("%d %d\n", n - 1, n);
        if (Map[n][n - 1] == 0) printf("%d %d\n", n, n - 1);
      }
    } else {
      if (Map[n - 1][n] != Map[n][n - 1]) {
        printf("%d", 1 + 2 - (Map[n - 1][n] + Map[n][n - 1]));
        if (Map[1][2] == 1) printf("%d %d\n", 1, 2);
        if (Map[2][1] == 1) printf("%d %d\n", 2, 1);
        if (Map[n - 1][n] == 0) printf("%d %d\n", n - 1, n);
        if (Map[n][n - 1] == 0) printf("%d %d\n", n, n - 1);
      } else {
        if (Map[n - 1][n] == 1) {
          printf("1\n");
          if (Map[1][2] == 0) printf("%d %d\n", 1, 2);
          if (Map[2][1] == 0) printf("%d %d\n", 2, 1);
        } else {
          printf("1\n");
          if (Map[1][2] == 1) printf("%d %d\n", 1, 2);
          if (Map[2][1] == 1) printf("%d %d\n", 2, 1);
        }
      }
    }
  }
}
