#include #include #include #include using namespace std; #define INF 0x3f3f3f3f #define eps 1e-8 typedef long long LL; char s1[10], s2[35]; int a[1000010][26], v[1000010], cur, num, n; void Insert(char* s) { int len = strlen(s); cur = 0; for (int i = 0; i < len; i++) { if (a[cur][s[i]-'a']) cur = a[cur][s[i]-'a']; else { a[cur][s[i]-'a'] = ++num; cur = num; } v[cur]++; } } void Delete(char* s) { int len = strlen(s), tmp; cur = 0; for (int i = 0; i < len; i++) if (a[cur][s[i]-'a'] == 0) { cur = -1; break; } else cur = a[cur][s[i]-'a']; if (cur != -1) { for (int i = 0; i < 26; i++) a[cur][i] = 0; tmp = v[cur]; cur = 0; for (int i = 0; i < len; i++) { cur = a[cur][s[i]-'a']; v[cur] -= tmp; } } } bool Search(char* s) { int len = strlen(s); cur = 0; for (int i = 0; i < len; i++) if (v[a[cur][s[i]-'a']] == 0) return 0; else cur = a[cur][s[i]-'a']; return 1; } int main() { scanf("%d", &n); memset(a, 0, sizeof(a)); memset(v, 0, sizeof(v)); num = 0; while (n--) { scanf("%s%s", s1, s2); if (s1[0] == 'i') Insert(s2); if (s1[0] == 'd') Delete(s2); if (s1[0] == 's') { if (Search(s2)) printf("Yes\n"); else printf("No\n"); } } return 0; }