1 #include <iostream>
2 #include <cstdio>
3 #include <cmath>
4 using namespace std;
5
6 int t = 0;
7 int n = 0;
8 char col[20];
9 bool c[20][20] = {0};
10 bool colored[20][20] = {0};
11 bool swit[20][20] = {0};
12
13 void changeswit(int a, int b)
14 {
15 colored[a][b] = !colored[a][b];
16 colored[a - 1][b] = !colored[a - 1][b];
17 colored[a + 1][b] = !colored[a + 1][b];
18 colored[a][b - 1] = !colored[a][b - 1];
19 colored[a][b + 1] = !colored[a][b + 1];
20 }
21
22
23 int main()
24 {
25 scanf("%d", &t);
26 for(int ti = 1; ti <= t; ++ti)
27 {
28 int sum = 0;
29 scanf("%d", &n);
30 int min = n * n + 1;
31 for(int i = 1; i <= n; ++i)
32 {
33 scanf("%s", col);
34 for(int j = 1; j <= n; ++j)
35 {
36 if(col[j - 1] == 'y') c[i][j] = 1;
37 else c[i][j] = 0;
38 }
39 }
40 for(int k = 0; k < pow(2.0, n); k++)
41 {
42 for(int i = 1; i <= n; i++)
43 for(int j = 1; j <= n; j++)
44 {
45 colored[i][j] = c[i][j];
46 }
47 for(int i = 1; i <= n; i++)
48 {
49 swit[1][i] = (k>>(i - 1)) & 1;
50 if(swit[1][i])
51 {
52 changeswit(1, i);
53 sum++;
54 }
55 }
56 for(int i = 2; i <= n; i++)
57 for(int j = 1; j <= n; j++)
58 if(!colored[i - 1][j])
59 {
60 swit[i][j] = 1;
61 sum++;
62 changeswit(i, j);
63 }
64 int mark = 0;
65 for(int j = 1; j <= n; j++)
66 if(!colored[n][j]) mark = 1;
67 if(!mark && sum < min) min = sum;
68 sum = 0;
69 }
70 if(min != n*n + 1) printf("%d\n",min);
71 else printf("inf\n");
72 }
73 return 0;
74 }