Operazioni sul dizionario

Vi viene fornito un dizionario inizialmente vuoto e un numero n di richieste (query). Ogni richiesta può essere di uno dei seguenti due tipi:

  • Tipo 1: Inserire una stringa nel dizionario.

  • Tipo 2: Verificare se una stringa è presente nel dizionario.

Il vostro compito è implementare un programma che gestisca queste richieste in modo efficiente.

Per una query di tipo 2, se la stringa è presente, stampate Yes, altrimenti stampate No.

Input

L’input è composto da più righe. La prima riga contiene un intero, q (1 ≤ q ≤ ), che indica il numero di query.

Le successive q righe descrivono le richieste. Ogni riga inizia con un intero type (1 o 2), che ne specifica il tipo.

  • Se type = 1, dopo l’intero è presente uno spazio seguito da una stringa s (1 ≤ |s| ≤ 1000), che rappresenta la stringa da inserire nel dizionario. La stringa è composta soltanto da lettere minuscole inglesi.

  • Se type = 2, dopo l’intero è presente uno spazio seguito da una stringa s (1 ≤ |s| ≤ 1000), che rappresenta la stringa da verificare nel dizionario. La stringa è composta soltanto da lettere minuscole inglesi.

È garantito che la somma delle lunghezze di tutte le stringhe delle query non superi .

Output

Per ogni query di tipo 2, stampate Yes se la stringa è presente nel dizionario, altrimenti stampate No.

Esempi

Ingresso

Uscita

5
1 abc
1 xyz
2 cba
1 def
2 xyz

No
Yes

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