import java.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){
Scanner in =newScanner(System.in);int n = in.nextInt();for(int i =0; i <1<< n; i ++){for(int j =0; j < n; j ++){if((i >> j &1)==1){
System.out.print(j +1+" ");}}
System.out.println();}}}
import java.util.Scanner;publicclassMain{staticint n, cnt =0;staticint[] num =newint[10];staticboolean[] vis =newboolean[10];staticvoiddfs(int x){if(x == n +1){for(int i =1; i <= n; i ++){
System.out.print(num[i]+" ");}
System.out.println();}for(int i =1; i <= n; i ++){if(!vis[i]){
num[x]= i;
vis[i]=true;dfs(x +1);
vis[i]=false;}}}publicstaticvoidmain(String[] args){
Scanner in =newScanner(System.in);
n= in.nextInt();dfs(1);}}
import java.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){
Scanner in =newScanner(System.in);int n = in.nextInt();long a =0, b =1, c;
System.out.print(a);for(int i =1; i < n; i ++){
c = a + b;
a = b;
b = c;
System.out.print(" "+ a);}}}
import java.util.Scanner;publicclassMain{staticchar[][] g =newchar[10][10];staticint[] dx =newint[]{0,-1,0,1,0};staticint[] dy =newint[]{0,0,1,0,-1};staticvoidturn(int x,int y){for(int i =0; i <5; i ++){int tx = x + dx[i];int ty = y + dy[i];if(tx >=0&& tx <5&& ty >=0&& ty <5){
g[tx][ty]^=1;}}}staticintTask(){int ans =0x3f3f3f3f;for(int i =0; i <1<<5; i ++){int res =0;char[][] tmp =newchar[10][10];for(int j =0; j <5; j ++){for(int k =0; k <5; k ++){
tmp[j][k]= g[j][k];}}for(int j =0; j <5; j ++){if((i >> j &1)==1){
res ++;turn(0, j);}}for(int j =0; j <4; j ++){for(int k =0; k <5; k ++){if(g[j][k]=='0'){
res ++;turn(j +1, k);}}}boolean flag =true;for(int j =0; j <5; j ++){if(g[4][j]=='0'){
flag =false;break;}}if(flag) ans = Math.min(ans, res);for(int j =0; j <5; j ++){for(int k =0; k <5; k ++){
g[j][k]= tmp[j][k];}}}if(ans >6) ans =-1;return ans;}publicstaticvoidmain(String[] args){
Scanner in =newScanner(System.in);int T = in.nextInt();while(T -->0){
in.nextLine();for(int i =0; i <5; i ++){
g[i]= in.next().toCharArray();}
System.out.println(Task());}}}