/*program by mangoyang*/ #pragma GCC optimize("Ofast", "inline") #include #define inf (0x7f7f7f7f) #define Max(a, b) ((a) > (b) ? (a) : (b)) #define Min(a, b) ((a) < (b) ? (a) : (b)) typedef long long ll; typedef unsigned long long ull; using namespace std; template inline void read(T &x){ int ch = 0, f = 0; x = 0; for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = 1; for(; isdigit(ch); ch = getchar()) x = x * 10 + ch - 48; if(f) x = -x; } const int N = 20; char s[N]; int vis[N][N], n; inline int solve(int x, int y){ if(x > n || y > n || vis[x][y]) return 0; if(x == n && y == n) return 1; if(solve(x + 1, y)){ if(x != 1 || y != 1) vis[x][y] = 1; return 1; } if(solve(x, y + 1)){ if(x != 1 || y != 1) vis[x][y] = 1; return 1; } return 0; } inline void gao(){ memset(vis, 0, sizeof(vis)); read(n); for(int i = 1; i <= n; i++){ scanf("%s", s + 1); for(int j = 1; j <= n; j++) if(s[j] == '#') vis[i][j] = 1; } int res = 0; while(solve(1, 1)) res++; printf("%d\n", res); } int main(){ int T; read(T); while(T--) gao(); }