#include #define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0) #define ll long long using namespace std; const ll MOD = 1e9 + 7; const ll MAXN= 11; int dir[][2]={{1,0},{0,1}}; char a[MAXN][MAXN]; bool vis[MAXN][MAXN]; ll n,flag; void dfs1(int nowx,int nowy) { if(nowx==n&&nowy==n) { flag=1; return ; } vis[nowx][nowy]=1; for(int i=0;i<2;i++) { int nextx=nowx+dir[i][0],nexty=nowy+dir[i][1]; if(nextx>=1&&nextx<=n&&nexty>=1&&nexty<=n&&vis[nextx][nexty]==0&&a[nextx][nexty]=='.') dfs1(nextx,nexty); if(flag==1) break; } if(flag!=1) vis[nowx][nowy]=0; return ; } void dfs2(int nowx,int nowy) { if(nowx==n&&nowy==n) { flag=2; return ; } vis[nowx][nowy]=1; for(int i=1;i>=0;i--) { int nextx=nowx+dir[i][0],nexty=nowy+dir[i][1]; if(nextx>=1&&nextx<=n&&nexty>=1&&nexty<=n&&vis[nextx][nexty]==0&&a[nextx][nexty]=='.') dfs2(nextx,nexty); if(flag==2) break; } if(flag!=2) vis[nowx][nowy]=0; return ; } void init() { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) vis[i][j]=0; } int main() { ll t; cin>>t; while(t--) { flag=0; cin>>n; init(); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; dfs1(1,1); if(flag==1) dfs2(1,1); if(a[1][1]=='#'||a[n][n]=='#') flag=0; cout<