#include #include #include #include #include using namespace std; #define M 55 #define N 1005 #define INF 50005 typedef unsigned int u32; set s; u32 ip[N],mask[M],add[M]; int t,n,m,num[M]; string str; void input(){ u32 a, b, c, d; for(int i = 0; i< n; i++){ scanf("%d.%d.%d.%d",&a,&b,&c,&d); ip[i] = (a << 24) | (b << 16) | (c << 8) | d; } for(int i = 0; i < m; i++){ scanf("%d.%d.%d.%d",&a,&b,&c,&d); mask[i] = (a << 24) | (b << 16) | (c << 8) | d; } } void work(int k){ printf("Case #%d:\n",k); for(int i = 0; i < m; i++){ s.clear(); for(int j = 0; j < n; j++){ s.insert((ip[j]&mask[i])); } printf("%d\n",s.size()); } } int main() { scanf("%d",&t); for(int k=1;k<=t;k++){ scanf("%d%d",&n,&m); input(); work(k); } return 0; }