#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<string>
#include<stdlib.h>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
#define maxv(A,B) (A>B?A:B)
#define minv(A,B) (A>B?B:A)
#define inf 2147483647
#define pi (2*acos(0.0))
#define eps 1e-9
int gcd( int a,int b) { return ( b== 0 ? a: gcd( b,a% b) ) ; }
int lcm( int a,int b) { return ( a* ( b/ gcd( a,b) ) ) ; }
int fx[ ] = { 0 ,0 ,1 ,- 1 } ;
int fy[ ] = { - 1 ,1 ,0 ,0 } ;
int main( )
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int num_word,i,t,ca= 1 ,l;
string str,s2;
cin >> t;
while ( t-- )
{
map< string,int > m;
cin >> num_word;
for ( i= 0 ; i< num_word; i++ )
{
cin >> str;
l= str.size ( ) ;
if ( l> 3 )
sort( str.begin ( ) + 1 ,str.end ( ) - 1 ) ;
++ m[ str] ;
}
int query,ans= 1 ,ll,jj;
char s1[ 100005 ] ;
cin >> query;
printf ( "Case %d:\n " ,ca++ ) ;
getchar ( ) ;
for ( jj= 1 ; jj<= query; jj++ )
{
ans= 1 ;
gets ( s1) ;
str= s1;
ll= str.size ( ) ;
i= 0 ;
while ( i< ll)
{
s2= "" ;
while ( i< ll&& str[ i] ! = ' ' )
{
s2= s2+ str[ i++ ] ;
}
while ( str[ i] == ' ' && i< ll)
i++ ;
l= s2.size ( ) ;
if ( l== 0 ) { ans* = 1 ; continue ; }
if ( l> 3 )
sort( s2.begin ( ) + 1 ,s2.end ( ) - 1 ) ;
ans* = m[ s2] ;
}
printf ( "%d\n " ,ans) ;
}
}
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c3RhY2s+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIG1heHYoQSxCKSAoQT5CP0E6QikKI2RlZmluZSBtaW52KEEsQikgKEE+Qj9COkEpCiNkZWZpbmUgaW5mIDIxNDc0ODM2NDcKI2RlZmluZSBwaSAoMiphY29zKDAuMCkpCiNkZWZpbmUgZXBzIDFlLTkKaW50IGdjZChpbnQgYSxpbnQgYikge3JldHVybiAoYj09MD9hOmdjZChiLGElYikpO30KaW50IGxjbShpbnQgYSxpbnQgYikge3JldHVybiAoYSooYi9nY2QoYSxiKSkpO30KaW50IGZ4W109ezAsMCwxLC0xfTsKaW50IGZ5W109ey0xLDEsMCwwfTsKCmludCBtYWluKCkKewoJLy9mcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CgkvL2ZyZW9wZW4oIm91dHB1dC50eHQiLCJ3IixzdGRvdXQpOwoJaW50IG51bV93b3JkLGksdCxjYT0xLGw7CglzdHJpbmcgc3RyLHMyOwoJY2luPj50OwoJd2hpbGUodC0tKQoJewoJCW1hcDxzdHJpbmcsaW50PiBtOwoJCWNpbj4+bnVtX3dvcmQ7CgkJZm9yKGk9MDtpPG51bV93b3JkO2krKykKCQl7CgkJCWNpbj4+c3RyOwoJCQlsPXN0ci5zaXplKCk7CgkJCWlmKGw+MykKCQkJCXNvcnQoc3RyLmJlZ2luKCkrMSxzdHIuZW5kKCktMSk7CgkJCSsrbVtzdHJdOwoJCX0KCQlpbnQgcXVlcnksYW5zPTEsbGwsamo7CgkJY2hhciBzMVsxMDAwMDVdOwoJCWNpbj4+cXVlcnk7CgkJcHJpbnRmKCJDYXNlICVkOlxuIixjYSsrKTsKCQlnZXRjaGFyKCk7CgkJZm9yKGpqPTE7amo8PXF1ZXJ5O2pqKyspCgkJewoJCQlhbnM9MTsKCQkJZ2V0cyhzMSk7CgkJCXN0cj1zMTsKCQkJbGw9c3RyLnNpemUoKTsKCQkJaT0wOwoJCQl3aGlsZShpPGxsKQoJCQl7CgkJCQlzMj0iIjsKCQkJCXdoaWxlKGk8bGwmJnN0cltpXSE9JyAnKQoJCQkJewoJCQkJCXMyPXMyK3N0cltpKytdOwoJCQkJfQoJCQkJd2hpbGUoc3RyW2ldPT0nICcmJmk8bGwpIAoJCQkJCWkrKzsKCQoJCQkJbD1zMi5zaXplKCk7CgkJCQlpZihsPT0wKSB7YW5zKj0xOyBjb250aW51ZTt9CgkJCQlpZihsPjMpCgkJCQkJc29ydChzMi5iZWdpbigpKzEsczIuZW5kKCktMSk7CgkJCQlhbnMqPW1bczJdOwoJCQl9CgkJCXByaW50ZigiJWRcbiIsYW5zKTsKCQl9Cgl9CglyZXR1cm4gMDsKfQ==
stdin
MTYKOApiYWdnZXJzCmJlZ2dhcnMKaW4KdGhlCmJsb3dlZApib3dsZWQKYmFybgpicmFuCjEKYmVnZ2FycyBib3dsZWQgaW4gdGhlIGJhcm4KMwphCmIKYwoxCmEgYiBjCjIKYQpiCjEKYSBiIGMKMwphYmN6enoKQWJjZFpaCmxmZHBQU2xzbGFTUEFwU1dsd0xXV1dzc3NzcwozCmFiY2RlZgoKQVpiY2RaIGFiY3p6eiBsZmRwUFNsc2xhU1BBcFNXbHdMV1dXc3Nzc3MgbGZkcFBTbHNsYVNBUHBTV2x3TFdXV3Nzc3NzIAozCmFiY2QKYWNiZAp4eXoKMgogICAgICAKYWJjZCB4eXoKMwphYmNkCmFjYmQKeHl6CjMKICAgICAgICAgICAgICAKICAgICAgICBhICAgICBhZmRkIGhnaG5oCmFiY2QgeHl6CjIKQkQKU2xlCjIKTgogU2xlCjIKYWJjCmdiYwozCmFiYyBhYmMgYWJjCmdiYyBnYmMgZ2JjCmFiYyBnYmMKOApiYWdnZXJzCmJlZ2dhcnMKaW4KdGhlCmJsb3dlZApib3dsZWQKYmFybgpicmFuCjEKYmVnZ2FycyBib3dsZWQgaW4gdGhlIGJhcm4KMwphCmIKYwoxCmEgYiBjCjIKYQpiCjEKYSBiIGMKMwphYmN6enoKQWJjZFpaCmxmZHBQU2xzbGFTUEFwU1dsd0xXV1dzc3NzcwozCmFiY2RlZgoKQVpiY2RaIGFiY3p6eiBsZmRwUFNsc2xhU1BBcFNXbHdMV1dXc3Nzc3MgbGZkcFBTbHNsYVNBUHBTV2x3TFdXV3Nzc3NzIAozCmFiY2QKYWNiZAp4eXoKMgogICAgICAKYWJjZCB4eXoKMwphYmNkCmFjYmQKeHl6CjMKICAgICAgICAgICAgICAKICAgICAgICBhICAgICBhZmRkIGhnaG5oCmFiY2QgeHl6CjIKQkQKU2xlCjIKTgogU2xlCjIKYWJjCmdiYwozCmFiYyBhYmMgYWJjCmdiYyBnYmMgZ2JjCmFiYyBnYmMK
16
8
baggers
beggars
in
the
blowed
bowled
barn
bran
1
beggars bowled in the barn
3
a
b
c
1
a b c
2
a
b
1
a b c
3
abczzz
AbcdZZ
lfdpPSlslaSPApSWlwLWWWsssss
3
abcdef
AZbcdZ abczzz lfdpPSlslaSPApSWlwLWWWsssss lfdpPSlslaSAPpSWlwLWWWsssss
3
abcd
acbd
xyz
2
abcd xyz
3
abcd
acbd
xyz
3
a afdd hghnh
abcd xyz
2
BD
Sle
2
N
Sle
2
abc
gbc
3
abc abc abc
gbc gbc gbc
abc gbc
8
baggers
beggars
in
the
blowed
bowled
barn
bran
1
beggars bowled in the barn
3
a
b
c
1
a b c
2
a
b
1
a b c
3
abczzz
AbcdZZ
lfdpPSlslaSPApSWlwLWWWsssss
3
abcdef
AZbcdZ abczzz lfdpPSlslaSPApSWlwLWWWsssss lfdpPSlslaSAPpSWlwLWWWsssss
3
abcd
acbd
xyz
2
abcd xyz
3
abcd
acbd
xyz
3
a afdd hghnh
abcd xyz
2
BD
Sle
2
N
Sle
2
abc
gbc
3
abc abc abc
gbc gbc gbc
abc gbc