#include #include #include using namespace std; #define ll long long char s[1005][15]; int n,m,k,flag[15],sum[1030],ans,q[1005]; void work() { for(int i=0;i<1025;i++) sum[i]=0; for(int i=1;i<=n;i++) { q[i]=0; for(int j=1;j<=m;j++) if(flag[j]) { if(s[i][j]=='A') q[i]=q[i]*2+1; else q[i]=q[i]*2; } sum[q[i]]++; } int res=n*(n-1)/2; for(int i=1;i<=n;i++) if(sum[q[i]]) res-=sum[q[i]]*(sum[q[i]]-1)/2,sum[q[i]]=0; if(res>=k) ans++; } void dfs(int x) { if(x==m+1) { work(); return; } flag[x]=1; dfs(x+1); flag[x]=0; dfs(x+1); } int main(void) { int T,cases=0; scanf("%d",&T); while(T--) { ans=0; scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++) scanf("%s",s[i]+1); dfs(1); printf("Case #%d: %d\n",++cases,ans); } return 0; }