#include<iostream>
#include<cmath>
using namespace std;char a[6][6];bool flag=0;
char base[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 dx[9]={0,-2,-2,-1,-1,1,1,2,2};
int dy[9]={0,-1,1,-2,2,-2,2,-1,1};
int minn=15;
int compare(char a2[6][6],char b[6][6]){
int ans=0;
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(a2[i][j]!=b[i][j])
ans++;
}
}
return ans;
}
void dfs(char now[6][6],int x,int y,int step,int fx,int fy){
int diff= compare(now,base);
if(diff==0){
minn=min(minn,step);flag=1;
}
if(diff+step>minn)
return;
for(int i=1;i<=8;i++){
int dix=x+dx[i],diy=y+dy[i];
if(dix>5||diy>5||dix<1||diy<1||step>15)
continue;
if(dix!=fx&&diy!=fy){
swap(now[x][y],now[dix][diy]);
dfs(now,dix,diy,step+1,x,y);
swap(now[x][y],now[dix][diy]);
}
}
}
int main() {
int n,i,o,p,u=1;
cin>>n;
int rex,rey,j;
for(o=1;o<=n;o++){
minn=15;flag=false;
for(i=1;i<=5;i++){
for(j=1;j<=5;j++){
cin>>a[i][j];
if(a[i][j]=='*'){
rex=i;rey=j;
}
}
}
dfs(a,rex,rey,1,0,0);
if(flag)
cout<<minn<<endl;
else
cout<<-1<<endl;
}
return 0;
}
RT,全是WA