#include<bits/stdc++.h>
using namespace std;
int n,mp[6][6],y[6][6],ans;
char p[5];
int main(){
cin>>n;
while(n){
ans=1e9;
for(int i=1;i<=5;i++){
cin>>p;
for(int j=0;j<5;j++){
mp[i][j+1]=p[j]-'0';
y[i][j+1]=mp[i][j+1];
}
}
for(int i=0;i<=31;i++){
int cnt=0;
int m=i;
int l[6]={0,0,0,0,0,0},sum=0;
while(m>0){
if(m%2)l[++sum]=1;
else l[++sum]=0;
m>>=1;
}
for(int j=5;j>=1;j--){
if(l[j]==1){
mp[1][j]=(mp[1][j]+1)%2;
mp[1][j+1]=(mp[1][j+1]+1)%2;
mp[1][j-1]=(mp[1][j-1]+1)%2;
mp[2][j]=(mp[2][j]+1)%2;
cnt++;
}
}
for(int i=2;i<=5;i++){
for(int j=1;j<=5;j++){
if(mp[i-1][j]==0){
mp[i-1][j]=(mp[i-1][j]+1)%2;
mp[i+1][j]=(mp[i+1][j]+1)%2;
mp[i][j]=(mp[i][j]+1)%2;
mp[i][j-1]=(mp[i][j-1]+1)%2;
mp[i][j+1]=(mp[i][j+1]+1)%2;
cnt++;
}
}
}
bool chk=true;
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(!mp[i][j]){
chk=false;
}
mp[i][j]=y[i][j];
}
}
if(chk){
ans=min(cnt,ans);
}
}
if(ans>6){
cout<<-1<<endl;
}else{
cout<<ans<<endl;
}
n--;
}
}
acwing能过

洛谷过不了
奇怪了