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