#include #include #include using namespace std; #define RI(x) scanf("%d",&(x)) #define RII(x,y) scanf("%d %d",&(x),&(y)) #define RI64(x) scanf("%I64d",&(x)) #define RII64(x,y) scanf("%I64d%I64d",&(x),&(y)) #define FZ(i,n) for(int i=0;i<(n);i++) #define PA(a,n) FZ(_1,n)printf("%d%c",(a)[_1],_1==(n)-1?10:32) #define ePA(a,n) FZ(_2,n)fprintf(stderr,"%d%c",(a)[_2],_2==(n)-1?10:32) #define SZ(x) ((int)x.size()) #define ALL(x) (x).begin(),(x).end() #define pritnf printf #define N 514 using namespace std; typedef long long int lnt; typedef double dou; int n,m; char s[N]; sets1,s2,s3; void sol(int uuu){ RII(n,m); s1.clear();s2.clear(); FZ(i,n){ scanf("%s",s); for(int j=0;s[j];j++)if(s[j]=='.')s[j]=' '; int a,b,c,d; sscanf(s,"%d %d %d %d",&a,&b,&c,&d); lnt t=1ll*a+(1ll*b<<10)+(1ll*c<<20)+(1ll*d<<30); s1.insert(t); } printf("Case #%d:\n",uuu); FZ(i,m){ scanf("%s",s); for(int j=0;s[j];j++)if(s[j]=='.')s[j]=' '; int a,b,c,d; sscanf(s,"%d %d %d %d",&a,&b,&c,&d); lnt t=1ll*a+(1ll*b<<10)+(1ll*c<<20)+(1ll*d<<30); s3.clear(); for(set::iterator jt=s1.begin();jt!=s1.end();jt++){ s3.insert(t&(*jt)); } printf("%d\n",SZ(s3)); } } int main(){ //while(RI(n)!=EOF)sol(); int t; if(RI(t)!=EOF){ for(int ti=1;ti<=t;ti++)sol(ti); } return 0; }