#include <bits/stdc++.h>
#include <unistd.h>
using namespace std;
int out,t,sx,sy,dx[9] = {0,1,2,2,1,-1,-2,-2,-1},dy[9] = {0,2,1,-1,-2,-2,-1,1,2};
char m[6][6];
char used[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 ida();
void iddfs(int x,int y,int k,int temp);
int main(){
cin >> t;
for(int o = 1;o <= t;o++){
for(int i = 1;i <= 5;i++)
for(int j = 1;j <= 5;j++){
cin >> m[i][j];
if(m[i][j] == '*') sx = i,sy = j;
}
for(int temp = 0;temp <= 15;temp++){
iddfs(sx,sy,1,temp);
if(out == 1){
cout << temp-1 << endl;
break;
}
}
if(out == 1){
out = 0;
continue;
}
cout << -1 << endl;
}
return 0;
}
void iddfs(int x,int y,int k,int temp){
if(k == temp){
if(!ida()) out = 1;
return;
}
if(k + ida()-1 > temp) return;
if(k > temp) return;
if(x > 5 || y > 5 || x <= 0 || y <= 0) return;
for(int i = 1;i <= 8;i++){
int xx = x + dx[i],yy = y + dy[i];
swap(m[x][y],m[xx][yy]);
iddfs(xx,yy,k+1,temp);
swap(m[x][y],m[xx][yy]);
}
}
int ida(){
int sum = 0;
for(int i = 1;i <= 5;i++)
for(int j = 1;j <= 5;j++)
if(m[i][j] != used[i][j]) sum++;
return sum;
}