Problem

6 /10


Consultas de cadena

Problem

Hay un conjunto de cadenas que inicialmente está vacío. Hay tres operaciones diferentes que deben manejarse en este conjunto de filas:
  • 1 s: agrega la cadena dada al conjunto.
  • 2 k l: Averigüe si hay k cadenas (no necesariamente distintas) en el conjunto que tienen un sufijo común de longitud l. Este sufijo no tiene que ser el más grande.
  • 3 i: elimina la cadena del conjunto que se agregó en la i-ésima operación (si aún no se ha eliminado).
Entrada:
La primera línea contiene un solo número entero: el número de operaciones q (1 <= q <= 105) que se procesarán.
A continuación, cada línea contiene una descripción de la solicitud. Primero es un número 1, 2 o 3, indicando el tipo de solicitud. 
Si se trata de una consulta del primer tipo, a continuación se proporciona la cadena s, cuya longitud total no supera los 105.
Si se trata de una consulta del segundo tipo, se dan dos enteros k y l (1 <= k, l <= 105).
Si se trata de una solicitud del tercer tipo, entonces se da el número i (1 <= i <= el número de la operación actual), donde i es el número de la operación del primer tipo.

Salida:
Para cada consulta del segundo tipo, imprima la palabra "SI" en una línea separada, si existen las líneas necesarias, y "NO" de lo contrario.

Ejemplo:
 
Entrada Salida
9
1 aba
1 cuenta
2 2 2
2 2 3
1 aaa
1 ababa
2 3 2
3 1
2 3 2

NO

NO