#include<iostream>
#include<cstring>
using namespace std;
const int N=6;
char g[N][N],h[N][N];
int dx[5] = {-1, 0, 1, 0, 0}, dy[5] = {0, 1, 0, -1, 0};
void turn(int l,int r)
{
for(int i=0;i<5;i++)
{
int a=dx[i]+l,b=dy[i]+r;
if(a<0||a>=5||b<0||b>=5)continue;
h[a][b]^=1;
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=0;i<5;i++)cin>>g[i];
int x=10;
for(int st=0;st<32;st++)
{
int step=0;
memcpy(h,g,sizeof g);
for(int j=0;j<5;j++)
{
if(st>>j&1){
step++;
turn(0,j);
}
}
for(int i=0;i<4;i++)
{
for(int j=0;j<5;j++)
{
if(h[i][j]=='0')turn(i+1,j),step++;
}
}
int p=1;
for(int i=0;i<5;i++)
{
if(h[4][i]=='0')p=0;
}
if(p==1)x=min(step,x);
}
if(x<=6)cout<<x<<endl;
else cout<<-1<<endl;
}
}