#include using namespace std; int n, ans; char S[12][12]; int f[12][12][12][12][4]; void dfs(int X1, int Y1, int X2, int Y2, int c) { if (X1 > n || Y1 > n || X2 > n || Y2 > n) return ; if (X1 == n && Y1 == n && X2 == n && Y2 == n) ans = c; if (ans == 2) return ; if (f[X1][X2][Y1][Y2][c]) return ; f[X1][X2][Y1][Y2][c] = 1; if (X1 == X2 && Y1 == Y2 && (X1 != 1 || Y1 != 1)) c = 1; if (S[X1 + 1][Y1] != '#' && S[X2 + 1][Y2] != '#') dfs(X1 + 1, Y1, X2 + 1, Y2, c); if (S[X1 + 1][Y1] != '#' && S[X2][Y2 + 1] != '#') dfs(X1 + 1, Y1, X2, Y2 + 1, c); if (S[X1][Y1 + 1] != '#' && S[X2 + 1][Y2] != '#') dfs(X1, Y1 + 1, X2 + 1, Y2, c); if (S[X1][Y1 + 1] != '#' && S[X2][Y2 + 1] != '#') dfs(X1, Y1 + 1, X2, Y2 + 1, c); } void solve() { scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%s", S[i] + 1); memset(f, 0, sizeof f); ans = 0; if (S[1][1] != '#') dfs(1, 1, 1, 1, 2); printf("%d\n", ans); } int main() { int t; scanf("%d", &t); while (t--) { solve(); } return 0; }