#include <bits/stdc++.h>
using namespace std;
int ans=0,res=0x3f3f3f3f,n;
int a[10][10],b[10][10];
int main()
{
cin>>n;
while(n--)
{
getchar();
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
{
char ch=getchar();
b[i][j]=ch-'0';
}
getchar();
}
for(int i=0;i<=(1<<5);i++)//枚举第一行的32种情况
{
for (int j=1;j<=5;j++)
{
for (int k=1;k<=5;k++)
{
a[j][k]=b[j][k];
}
}
int ans=0;
for(int j=1;j<=5;i++)
{
if(i>>(j-1)&1)
{
ans++;
a[1][j-1]^=1;
a[1][j+1]^=1;
a[1][j]^=1;
a[2][j]^=1;
}
}
for(int j=1;j<=4;j++)
{
for(int k=5;k>=1;k--)
{
if(!a[j][k])
{
ans++;
a[j][k]^=1;
a[j+1][k]^=1;
a[j+1][k-1]^=1;
a[j+1][k+1]^=1;
a[j+2][k]^=1;
}
}
}
bool ok=true;
for(int j=1;j<=5;j++)
{
for(int k=1;k<=5;k++)
{
if(!a[j][k])
{
ok=false;
}
}
}
if(ok)
{
res=min(res,ans);
}
}
if(res>6)
{
cout<<-1;
}
else cout<<res;
res=0x3f3f3f3f;
puts("");
}
return 0;
}