#include #include #include #include #include #include #include using namespace std; const int N=1E5*31; int tr[N],ch[N][30],n,len,x,tot,root; bool mark[N]; char s[40],t[20],c; void updata(int p) { mark[p]=1; tr[p]=0; } void push_down(int p) { if (!mark[p]) return; for (int i=0;i<26;i++) if (ch[p][i]) updata(ch[p][i]); mark[p]=0; } int add(int &p,int x,int k) { if (!p&&k!=1) return 0; if (!p) p=++tot; push_down(p); if (k==1) tr[p]++; if (x==len) return p; /* { if (k==1) tr[p]++; else if (k==2) updata(p); return p; }*/ int ans=add(ch[p][s[x]-'a'],x+1,k); if (k==2) tr[p]-=tr[ans]; // tr[p]=0; // for (int i=0;i<26;i++) if (ch[p][i]) tr[p]+=tr[ch[p][i]]; return ans; } int main() { cin>>n; for (int i=1;i<=n;i++) { scanf("%s%c%s",t,&c,s); len=strlen(s); if (t[0]=='i') { add(root,0,1); } else if (t[0]=='d') { x=add(root,0,2); updata(x); } else { x=add(root,0,3); if (tr[x]) printf("Yes\n"); else printf("No\n"); } } }