#include #include #include #include #include #include #include using namespace std; #define ll long long char mp[20][20]; int dp[15][15]; int test(int x,int y) { if(mp[x][y] != '.') return 0; if(x==1&&y==1) return 1; if(dp[x-1][y]) { if(test(x-1,y)) { mp[x][y]='#'; return 1; } } if(dp[x][y-1]) { if(test(x,y-1)) { mp[x][y]='#'; return 1; } } return 0; } int solve() { int i,j,n,m,k,x,y; scanf("%d",&n); memset(dp,0,sizeof(dp)); for(i=1; i<=n; i++) { scanf("%s",mp[i]+1); } dp[1][0]=1; for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { if(mp[i][j]=='.') { dp[i][j]+=dp[i-1][j]+dp[i][j-1]; } } } if(!dp[n][n]) { puts("0"); } else if(test(n-1,n)&&test(n,n-1)) { // for(i=1;i<=n;i++) // puts(mp[i]+1); puts("2"); } else { puts("1"); } } int main() { int t=1; int n; scanf("%d",&t); while(t--) { solve(); } return 0; } /* 4 ...# .... .... #... */