void ins(int x){
int u=0;
for(int i=1;i<=l[x];i++){
int w=c[x][i]-'a';
if(t[u][w]==0){
t[u][w]=++cnt;
}
u=t[u][w];
}
r[u]|=(1<<(l[x]-1));
}
void build(){
for(int i=0;i<26;i++){
if(t[0][i]) q.push(t[0][i]);
}
while(!q.empty()){
int u=q.front();
q.pop();
r[u]|=r[fa[u]];
for(int i=0;i<26;i++){
if(t[u][i]){
fa[t[u][i]]=t[fa[u]][i];
q.push(t[u][i]);
}
else t[u][i]=t[fa[u]][i];
}
}
}