#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define debug puts("IAKIOI")
#define inf (int)1e18
using namespace std;
int now[6][6],mb[6][6],x,y;
int h()
{
int ans=0;
for ( int i = 1 ; i <= 5 ; i++ )
{
for ( int j = 1 ; j <= 5 ; j++ )
{
ans+=mb[i][j]!=now[i][j];
}
}
return ans;
}
int xx[8]={-2,-2,-1,1,2,2,1,-1};
int yy[8]={-1,1,2,2,1,-1,-2,-2};
int in(int x,int y)
{
return 1<=x&&x<=5&&1<=y&&y<=5;
}
int suc;
void ida(int dep,int maxdep)
{
if(dep==maxdep&&h()!=0)
{
return;
}
if(h()==0)
{
suc=1;
return ;
}
if(suc==1)
{
return;
}
int ans=inf;
for ( int i = 0 ; i < 8 ; i++ )
{
int nx=x+xx[i];
int ny=y+yy[i];
if(in(nx,ny))
{
swap(now[x][y],now[nx][ny]);
x=nx,y=ny;
if(dep+h()<=maxdep)
{
ida(dep+1,maxdep);
}
x=nx-xx[i];
y=ny-yy[i];
swap(now[x][y],now[nx][ny]);
}
}
return ;
}
void sol()
{
suc=0;
for ( int i = 1 ; i <= 5 ; i++ )
{
getchar();
for ( int j = 1 ; j <= 5 ; j++ )
{
char ch=getchar();
if(ch=='*')
{
now[i][j]=2;
x=i;
y=j;
}else{
now[i][j]=ch-'0';
}
}
}
for ( int i = 1 ; i <= 5 ; i++ )
{
for ( int j = 1 ; j <= 5 ; j++ )
{
}
}
for ( int i = 1 ; i <= 15 ; i++ )
{
ida(0,i);
if(suc)
{
cout << i << endl;
return;
}
}
cout << -1 << endl;
}
signed main()
{
mb[1][1]=mb[1][2]=mb[1][3]=mb[1][4]=mb[1][5]=1;
mb[2][2]=mb[2][3]=mb[2][4]=mb[2][5]=1;
mb[3][4]=mb[3][5]=mb[4][5]=1;
mb[3][3]=2;
int T;
cin >> T;
while(T--)
{
sol();
}
return 0;
}