#include<bits/stdc++.h>
#define ll long long
using namespace std;
int st[6][6]={{0,0,0,0,0,0},{0,1,1,1,1,1},{0,0,1,1,1,1},{0,0,0,2,1,1},{0,0,0,0,0,1},{0,0,0,0,0,0}};
int dx[]={0,1,1,-1,-1,2,2,-2,-2};
int dy[]={0,2,-2,2,-2,1,-1,1,-1};
int a[6][6];
bool found;
int h(){
int cnt=0;
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(a[i][j]!=st[i][j]&&a[i][j]!=2){
cnt++;
}
}
}
return cnt;
}
pair<int,int> find(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(a[i][j]==2){
return make_pair(i,j);
}
}
}
}
void ids(int dep,int nowdep){
if(h()==0&&dep==nowdep){
found=1;
return ;
}
if(nowdep+h()>dep) return ;
int x=find().first,y=find().second;
for(int i=1;i<=8;i++){
int nx=x+dx[i],ny=y+dy[i];
if(nx&&ny&&nx<=5&&ny<=5){
swap(a[x][y],a[nx][ny]);
ids(dep,nowdep+1);
swap(a[x][y],a[nx][ny]);
}
}
}
int t;
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>t;
while(t--){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
char c=getchar();
if(c=='*') a[i][j]=2;
else a[i][j]=c-'0';
}
getchar();
}
for(int i=1;i<=15;i++){
ids(i,0);
if(found){
cout<<i<<endl;
goto luqyou;
}
}
puts("-1");
luqyou:;
found=0;
}
return 0;
}