#include typedef long long ll; ll gi(){ ll x=0,f=1; char ch=getchar(); while(!isdigit(ch))f^=ch=='-',ch=getchar(); while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); return f?x:-x; } std::mt19937 rnd(time(NULL)); #define rand rnd #define pr std::pair #define all(x) (x).begin(),(x).end() #define fi first #define se second templatevoid cxk(T&a,T b){a=a>b?a:b;} templatevoid cnk(T&a,T b){a=a>=1; } return ret; } templatevoid inc(Ta&a,Tb b){a=a+b>=mod?a+b-mod:a+b;} templatevoid dec(Ta&a,Tb b){a=a>=b?a-b:a+mod-b;} #endif char S[12][12]; bool yes[12][12]; bool check(int n){ S[n][n]='.'; int x=n,y=n; memset(yes,0,sizeof yes); for(int i=1;i<=n;++i) for(int j=1;j<=n;++j){ if(S[i][j]=='#')continue; if(i==1&&j==1)yes[i][j]=1; else yes[i][j]=yes[i-1][j]|yes[i][j-1]; } if(!yes[n][n])return 0; while(1){ if(x==1&&y==1)return 1; S[x][y]='#'; if(!yes[x-1][y])--y; else --x; } } int main(){ #ifdef LOCAL freopen("in.in","r",stdin); //freopen("out.out","w",stdout); #endif int T=gi(); while(T--){ int n=gi(),ans=0; for(int i=1;i<=n;++i)scanf("%s",S[i]+1); if(S[n][n]=='.')while(check(n))++ans; printf("%d\n",ans); } return 0; }