#include #include #include #include #include #include int const N = 100005; #define ll long long #define mod 9973 using namespace std; struct node { int num; node *next[30]; node() { memset(next,0,sizeof(next)); num=0; } }; void insert(node* root,string s) { node *p = root; int l = s.size(); for(int i = 0;i < l;i++){ int x = s[i] - 'a'; if(p -> next[x] == NULL){ p -> next[x] = new node(); } p = p -> next[x]; p -> num++; } } int search(node *root,string s) { int l = s.size(); node *p = root; for(int i = 0;i < l;i++){ int x = s[i] - 'a'; if(p -> next[x] == NULL){ return 0; } p = p -> next[x]; } return p -> num; } void Delete(node* root,string s,int cnt) { node *p = root; int l = s.size(); for(int i = 0;i < l;i++){ int x = s[i] - 'a'; if(p -> next[x] == NULL){ return; } p = p -> next[x]; p -> num -= cnt; } memset(p -> next,0,sizeof( p-> next)); } int main() { //freopen("in.txt","r",stdin); int n; string m,s; while(scanf("%d",&n) != EOF) { node *root=new node(); while(n--){ cin>>m>>s; if(m[0] == 'i'){ insert(root,s); } else if(m[0] == 's'){ int flag = search(root,s); if(flag) printf("Yes\n"); else printf("No\n"); } else{ int cnt = search(root,s); if(cnt){ Delete(root,s,cnt); } } } } return 0; }