#include<cstdio>
#include<cstdlib>
#include<algorithm>
int n,ans;
char s[100][100];
int ps[100],pp=0;
int vs[100],stk[100],stp=0;
void cal(){
stp=0;
for(pp=0;pp<n;pp++)ps[pp]=pp,vs[pp]=0;
for(int i=0;i<n;i++)for(int j=0;j<n;j++)if(s[i][j])++vs[j];
for(int t=0;t<5;t++){
std::random_shuffle(ps,ps+pp);
for(int i=0;i<pp;i++){
int x=ps[i];
bool ed=1;
for(int j=0;j<n;j++)if(s[x][j]>=vs[j]){ed=0;break;}
if(ed){
for(int j=0;j<n;j++)if(s[x][j])--vs[j];
stk[stp++]=x;
ps[i--]=ps[--pp];
}
}
if(pp<ans)ans=pp;
if(!stp)continue;
int w=rand()%stp;
int x=ps[pp++]=stk[w];
stk[w]=stk[stp--];
for(int i=0;i<n;i++)if(s[x][i])++vs[i];
}
}
int main(){
srand(1844677);
int T=1;
while(~scanf("%d",&n)){
for(int i=0;i<n;i++){
scanf("%s",s[i]),s[i][i]=‘1‘;
for(int j=0;j<n;j++)s[i][j]-=‘0‘;
}
ans=n;
for(int i=0;i<180;i++)cal();
printf("Case %d: %d\n",T,ans);
T++;
}
return 0;
}