Você tem um dicionário vazio e q consultas. Cada consulta pode ser de um dos seguintes três tipos:
Type 1: Inserir uma string no dicionário.
Type 2: Verificar se uma string existe no dicionário.
Type 3: Excluir uma string do dicionário.
O seu objetivo é implementar um programa que processe essas consultas de maneira eficiente.
Para as consultas do tipo 2, se a string estiver presente, imprima Yes; caso contrário, imprima No.
Entrada
A primeira linha da entrada contém um inteiro q (1 ≤ q ≤ 100 000), que representa o número de consultas.
As q linhas seguintes descrevem as consultas. Cada linha começa com um inteiro, type (1, 2 ou 3), indicando o tipo de consulta.
Se type = 1: a linha será seguida por um espaço e uma string s (1 ≤ |s| ≤ 1000), indicando a string a ser inserida no dicionário. A string consiste apenas em letras minúsculas do alfabeto inglês.
Se type = 2: a linha será seguida por um espaço e uma string s (1 ≤ |s| ≤ 1000), indicando a string a ser verificada no dicionário. A string consiste apenas em letras minúsculas do alfabeto inglês.
Se type = 3: a linha será seguida por um espaço e uma string s (1 ≤ |s| ≤ 100), indicando a string a ser excluída do dicionário. A string consiste apenas em letras minúsculas do alfabeto inglês.
É garantido que a soma dos comprimentos de todas as strings de consulta não exceda .
Saída
Para cada consulta de tipo 2, imprima Yes se a string estiver presente no dicionário, caso contrário, imprima No.