#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;
    }
    
}