#include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef long long ll; const int maxn = 2e6 + 7; int vis[20][20]; char s[20][20]; int T; int n; int ans = 0; void dfs(int x , int y , int tot){ //printf ("%d %d\n",x , y); if(x == n && y == n){ if(tot == 0){ vis[n][n] = 0; ans = max(ans , 1); dfs(1 , 1 , tot + 1); } else{ ans = max(ans , 2); return ; } } int nx = x + 1; int ny = y + 1; if(nx <= n && vis[nx][y] == 0 && s[nx][y] == '.'){ vis[nx][y] = 1; dfs(nx , y , tot); vis[nx][y] = 0; } if(ny <= n && vis[x][ny] == 0 && s[x][ny] == '.'){ vis[x][ny] = 1; dfs(x , ny , tot); vis[x][ny] = 0; } } int main() { scanf("%d",&T); while(T--){ scanf("%d",&n); ans = 0; memset(vis , 0 ,sizeof(vis)); for(int i = 1; i <= n; i ++){ scanf("%s",s[i] + 1); } if(s[1][1] == '#' || s[n][n] == '#'){ printf ("0\n"); continue; } dfs(1 , 1 , 0); printf ("%d\n",ans); } return 0; }