#include
#include
#include
#include
using namespace std;
typedef int array[6];
array a,b[6],c[6];
int n,ans;
void Init()
{
char str[6];
for (int i=1;i<=5;i++)
{
scanf("%s",str);
for (int j=1;j<=5;j++)
b[i][j]=str[j-1]-‘0‘;
}
}
int work()
{
int dep=0;
for (int i=1;i<=5;i++)
if (a[i]==1)
{
dep++;
c[1][i]^=1; c[2][i]^=1;
if (i>1) c[1][i-1]^=1;
if (i<5) c[1][i+1]^=1;
}
for (int i=2;i<=5;i++)
for (int j=1;j<=5;j++)
if (c[i-1][j]==0 && dep<=6)
{
dep++;
c[i][j]^=1; c[i-1][j]^=1;
if (j>1) c[i][j-1]^=1;
if (j<5) c[i][j+1]^=1;
if (i<5) c[i+1][j]^=1;
}
if (dep>=7) return 7;
for (int i=1;i<=5;i++)
if (c[5][i]==0) return 7;
return dep;
}
void solve()
{
Init();
ans=0xFFFFFFF;
for (int a1=0;a1<=1;a1++)
for (int a2=0;a2<=1;a2++)
for (int a3=0;a3<=1;a3++)
for (int a4=0;a4<=1;a4++)
for (int a5=0;a5<=1;a5++)
{
memcpy(c,b,sizeof(c));
a[1]=a1; a[2]=a2; a[3]=a3; a[4]=a4; a[5]=a5;
int step=work();
if (stepstep;
if (ans==2)
{
printf("2\n");
return ;
}
}
if (ans<=6) printf("%d\n",ans);
else printf("-1\n");
}
int main()
{
scanf("%d",&n);
for (int test=1;test<=n;test++) solve();
return 0;
}