Vi viene fornito un dizionario inizialmente vuoto e q interrogazioni (queries). Ogni interrogazione può essere di uno dei seguenti tre tipi:
Tipo 1: Inserire una stringa nel dizionario.
Tipo 2: Verificare se una stringa esiste nel dizionario.
Tipo 3: Eliminare una stringa dal dizionario.
Il vostro obiettivo è implementare un programma in grado di gestire queste interrogazioni in modo efficiente.
Per le interrogazioni di tipo 2, se la stringa è presente nel dizionario, stampate Yes, altrimenti stampate No.
Input
La prima riga dell’input contiene un intero q (1 ≤ q ≤ 100 000), che rappresenta il numero di interrogazioni.
Le successive q righe descrivono le singole interrogazioni. Ogni riga inizia con un intero type (1, 2 o 3), che indica il tipo di interrogazione.
Se type = 1: la riga sarà seguita da uno spazio e da una stringa s (1 ≤ |s| ≤ 1000), che rappresenta la stringa da inserire nel dizionario. La stringa è composta esclusivamente da lettere minuscole inglesi.
Se type = 2: la riga sarà seguita da uno spazio e da una stringa s (1 ≤ |s| ≤ 1000), che rappresenta la stringa da verificare nel dizionario. La stringa è composta esclusivamente da lettere minuscole inglesi.
Se type = 3: la riga sarà seguita da uno spazio e da una stringa s (1 ≤ |s| ≤ 100), che rappresenta la stringa da eliminare dal dizionario. La stringa è composta esclusivamente da lettere minuscole inglesi.
È garantito che la somma delle lunghezze di tutte le stringhe delle interrogazioni non superi .
Output
Per ogni interrogazione di tipo 2, stampate Yes se la stringa è presente nel dizionario, altrimenti stampate No.