#include<bits/stdc++.h>
using namespace std;
int T;
char init[6][6];
int dx[9]={0,-2,-2,-1,-1,1,1,2,2};
int dy[9]={0,-1,1,-2,2,-2,2,-1,1};
int an=25;
char ans[6][6]={
'0','0','0','0','0','0',
'0','1','1','1','1','1',
'0','0','1','1','1','1',
'0','0','0','*','1','1',
'0','0','0','0','0','1',
'0','0','0','0','0','0',
};
int check(){
int cnt=0;
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(ans[i][j]!=init[i][j]) cnt++;
}
}
return cnt;
}
bool flag;
void dfs(int x,int y,int d,int f){
if(d>=an) return;
if(check()+d>16) return ;
if(check()==0){
an=d;
flag=1;
return ;
}
for(int i=1;i<=8;i++){
if((dx[i]+x<1)||(dx[i]+x>5)||(dy[i]+y<1)||(dy[i]+y>5)) continue;
if(i+f!=9){
swap(init[x][y],init[dx[i]+x][dy[i]+y]);
dfs(dx[i]+x,dy[i]+y,d+1,i);
swap(init[x][y],init[dx[i]+x][dy[i]+y]);}
}
}
int main(){
scanf("%d",&T);
for(int i=1;i<=T;i++){
int x,y;
an=25;
flag=0;
for(int i=1;i<=5;i++){
scanf("%s",(init[i]+1));
for(int j=1;j<=5;j++){
if(init[i][j]=='*'){
x=i,y=j;
}
}
}
dfs(x,y,0,0);
if(!flag) puts("-1");
else cout<<an<<endl;
memset(init,0,sizeof(init));
}
return 0;
}