#include<bits/stdc++.h>
#define ll long long
#define i128 __int128
#define ull unsigned long long
#define pii pair<int,int>
#define pll pair<long long, long long>
#define fs first
#define sc second
#define endl '\n'
#define debug puts("AK IOI")
#define re register
#define pb push_back
#define mem(a,x) memset((a),(x),sizeof(a))
#define vi vector<int>
#define pq priority_queue
using namespace std;
const int mod = 1e9+7;
const int inf = 0x3f3f3f3f,N = 15,M = 1e6+5,K = 3000+5;
const long long linf = 0x3f3f3f3f3f3f3f3f;
int n=5;
char a[N][N];
vector<char> st,ed;
int d[8] = {-11,-9,-7,-3,3,7,9,11};
int ans=1e9;
map<vector<char>,int> mp;
map<vector<char>,int> mp2;
void dfs1(int x,int res,vector<char> v){
if(res > 8) return ;
if(mp.count(v)) mp[v]=min(mp[v],res);
else mp[v]=res;
for(int i = 0; i < 8;i++){
int nw = x + d[i];
if(nw >= 0 && nw < 25){
swap(v[x],v[nw]);
dfs1(nw,res+1,v);
swap(v[x],v[nw]);
}
}
}void dfs2(int x,int res,vector<char> v){
if(res > 8) return ;
if(mp2.count(v)) mp2[v]=min(mp2[v],res);
else mp2[v]=res;
if(mp.count(v)) ans = min(ans,mp2[v] + mp[v]);
for(int i = 0; i < 8;i++){
int nw = x + d[i];
if(nw >= 0 && nw < 25){
swap(v[x],v[nw]);
dfs2(nw,res+1,v);
swap(v[x],v[nw]);
}
}
}
void solve(){
ans = 1e9;
int xx=0,yy=0;
for(int i = 1;i <= n;i++) for(int j = 1;j <= n;j++){cin >> a[i][j];st.pb(a[i][j]);if(a[i][j]=='*')xx=yy;yy++;}
for(int i = 1;i <= n;i++) st.pb('1');
st.pb('0');for(int i = 1;i <= 4;i++) st.pb('1');
for(int i = 1;i <= 2;i++) st.pb('0');st.pb('*');for(int i = 1;i <= 2;i++) st.pb('1');
for(int i =1;i <= 4;i++) st.pb('0');st.pb('1');
for(int i = 1;i <= 5;i++) st.pb('0');
dfs1(xx,0,st);
dfs2(12,0,ed);
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int T=1;
cin >> T;
while(T--) solve();
return 0;
}