#include"stdio.h" //静态数组建树
#include"string.h"
#include"iostream"
using namespace std;
const int maxn=100;
const int max_sigma=10;
struct trie
{
int res[maxn][max_sigma]; //节点:节点内保存下一个节点的地址 0是树根
int val[maxn]; //判断trie树中是否有这个串
int sz; //节点数
void init()
{
sz=1;
memset(res[0],0,sizeof(res[0]));//初始化根节点
}
int idx(char c)
{
return c-'0';
}
void insert(char *s,int v)
{
int u=0,k,i;
for(i=0;s[i];i++)
{
k=idx(s[i]);
if(!res[u][k])
{
memset(res[sz],0,sizeof(res[sz]));
val[sz]=0;
res[u][k]=sz++;
}
u=res[u][k];
}
val[u]=v;
}
int find(char *s)
{
int u=0,k,i;
for(i=0;s[i];i++)
{
k=idx(s[i]);
if(res[u][k])
u=res[u][k];
else
return 0;
}
return val[u];
}
};
int main()
{
char a[500];
trie tree;
tree.init();
int n,i;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
tree.insert(a,i);
}
while(scanf("%s",a)!=EOF)
{
int res=tree.find(a);
printf("%s\n",res==0?"Can't fint it!":"Wow!");
}
return 0;
}
02-21