#include<bits/stdc++.h>
using namespace std;
int T;
int ans=0x3f3f3f3f;
bool flag=0;
const int dx[9]={-2,-2,-1,-1,1,1,2,2};
const int dy[9]={-1,1,-2,2,-2,2,-1,1};
char a[6][6];
char mp[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','1','1',
'0','0','0','0','0','1'
};
int diff()
{
int res=0;
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
if(a[i][j]!=mp[i][j])
res++;
return res;
}
void iddfs(int x,int y,int syd)
{
if(syd<=0)
{
if(diff()==0)flag=1;
return ;
}
for(int i=0;i<8;i++)
{
int tx=x+dx[i];
int ty=y+dy[i];
if(tx>=1&&tx<=5&&ty>=1&&ty<=5)
{
swap(a[x][y],a[tx][ty]);
if(diff()<=syd)iddfs(tx,ty,syd-1);
swap(a[x][y],a[tx][ty]);
}
}
}
int bx,by;
int main()
{
cin>>T;
while(T--)
{
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
{
cin>>a[i][j];
if(a[i][j]=='*')
{
bx=i;
by=j;
}
}
}
flag=0;
for(int syd=0;syd<=15;syd++)
{
iddfs(bx,by,syd);
cout << syd << '\n';
if(flag)
{
cout<<syd<<"\n";
break;
}
}
if(!flag)cout<<"-1\n";
}
return 0;
}