Расширенные операции со словарём

Вам дан пустой словарь и q запросов. Каждый запрос может относиться к одному из трёх типов:
  • Тип 1: вставить строку в словарь.
  • Тип 2: проверить, присутствует ли строка в словаре.
  • Тип 3: удалить строку из словаря.
Ваша задача — эффективно обработать все эти запросы.
Для запроса типа 2, если строка есть в словаре, выведите Yes, в противном случае выведите No.

Входные данные

Первая строка содержит целое число q (1 ≤ q ≤ 100 000), означающее количество запросов.
Следующие q строк содержат описание запросов. Каждая строка начинается с целого числа type (1, 2 или 3), определяющего тип запроса.
  • Если type = 1: после него идёт пробел и строка s (1 ≤ |s| ≤ 1000), которую нужно вставить в словарь. Строка состоит только из строчных букв английского алфавита.
  • Если type = 2: после него идёт пробел и строка s (1 ≤ |s| ≤ 1000), которую нужно проверить в словаре. Строка состоит только из строчных букв английского алфавита.
  • Если type = 3: после него идёт пробел и строка s (1 ≤ |s| ≤ 100), которую нужно удалить из словаря. Строка состоит только из строчных букв английского алфавита.
Гарантируется, что сумма длин всех строк, появляющихся в запросах, не превышает .

Выходные данные

Для каждого запроса типа 2 выведите Yes, если соответствующая строка находится в словаре, иначе выведите No.

Пример

Ввод
Вывод
7 1 abc 1 xyz 2 abc 3 abc 2 abc 2 xyz 2 abo
Yes No Yes No
 

Constraints

Time limit: 4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue