#include<bits/stdc++.h> #define debu using namespace std; const int maxn=20; const int INF=999999; int b[maxn][maxn]; int n,a[maxn][maxn]; int solve(int s) { int num=0; memset(b,0,sizeof(b)); for(int i=0; i<n; i++) if(s&(1<<i)) b[0][i]=1; else if(a[0][i]==1) return INF; for(int i=1; i<n; i++) for(int j=0; j<n; j++) { int sum=0; if(i>1) sum+=b[i-2][j]; if(j>0) sum+=b[i-1][j-1]; if(j<n-1) sum+=b[i-1][j+1]; b[i][j]=sum%2; if(a[i][j]&&(!b[i][j])) return INF; } for(int i=0; i<n; i++) for(int j=0; j<n; j++) if(a[i][j]!=b[i][j]) num++; return num; } int main() { #ifdef debug freopen("in.in","r",stdin); #endif // debug int t,cas=0; scanf("%d",&t); while(t--) { int ans=INF; scanf("%d",&n); for(int i=0; i<n; i++) for(int j=0; j<n; j++) scanf("%d",&a[i][j]); for(int i=0; i<(1<<n); i++) ans=min(ans,solve(i)); if(ans==INF) ans=-1; printf("Case %d: %d\n",++cas,ans); } return 0; }