#include <iostream>
using namespace std;
struct node{
int zi[27];
}tire[maxn];
int isok[maxn];
void insert(string s,int id){
int now=0;//当前在根节点
for(int i=0;i<s.length();i++)
{
int ch=s[i]-'a'+1;
if(!tire[now].zi[ch])//没有向下延伸的节点
tire[now].zi[ch]=++tot;//创造一个节点,并把它编号为tot
now=tire[now].zi[ch];//去下一个节点
}
isok[now]=id;//这个节点是一个字串
}
bool ask(string s){
int now=0;
for(int i=0;i<s.length();i++)
{
int ch=s[i]-'a'+1;
if(!tire[now].zi[ch]) return false;
now=tire[now].zi[ch];
}
return isok[now];
}