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

Вам дан пустой словарь и 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