#include #include #include using namespace std; #define N 1000005 int id,n,m,k,l,t,s,ans; int map[N][26],a[N]; char ss[100],st[100]; void pushdown(int x){ for (int i=0;i<26;i++)a[map[x][i]]=0; } bool search(){ int u=0,pp=1; for (int i=1;i<=m;i++){ int v=st[i]-'a'; if(!map[u][v]){pp=0;break;} else u=map[u][v]; if(!a[u]){pp=0;break;} } t=u; return pp; } int main(){ scanf("%d",&n); while(n--){ scanf("%s%s",ss,st+1); m=strlen(st+1); if(ss[0]=='i'){ int u=0; for (int i=1;i<=m;i++){ int v=st[i]-'a'; if(map[u][v])u=map[u][v]; else{ map[u][v]=++id; u=id; } if(!a[u])pushdown(u); a[u]++; } } if(ss[0]=='s') if(search())printf("Yes\n");else printf("No\n"); if(ss[0]=='d') if(search()){ int u=0; for (int i=1;i<=m;i++){ u=map[u][st[i]-'a']; a[u]-=a[t]; } a[t]=0; } } }