#include using namespace std; typedef long long ll; typedef unsigned long long ull; #define _for(i,a,b) for(register int (i)=(a);(i)<=(b);(i)++) #define For(i,a,b) for(register int (i)=(a);(i)>=(b);(i)--) #define INF 0x7fffffff #define il inline #define rg register ll n,p[15][15],tot,ans; char s[20]; void dfss(int x,int y){ if(x==n and y==n) return ans=max(ans,2ll), void(); if(y!=n) if(p[x][y+1]) p[x][y+1]=0, dfss(x,y+1), p[x][y+1]=1; if(x!=n) if(p[x+1][y]) p[x+1][y]=0, dfss(x+1,y), p[x+1][y]=1; } void dfs(int x,int y){ if(x==n and y==n) ans=max(ans,1ll), p[n][n]=1, dfss(1,1); if(y!=n) if(p[x][y+1]) p[x][y+1]=0, dfs(x,y+1), p[x][y+1]=1; if(x!=n) if(p[x+1][y]) p[x+1][y]=0, dfs(x+1,y), p[x+1][y]=1; } int main(){ int T; scanf("%d",&T); while(T--){ scanf("%lld",&n); _for(i,1,n){ scanf("%s",s); _for(j,1,n) if(s[j-1]=='.') p[i][j]=1; else p[i][j]=0; } if(p[1][1]==0 or p[n][n]==0){ puts("0"); continue; } ans=0; dfs(1,1); printf("%lld\n",ans); } return 0; }