Desarrolle un programa que modele un sistema de procesamiento de eventos multinivel. La entrada consiste en una secuencia de comandos. Cada comando puede ser: 'ADD <nivel> <nombre_del_manejador>' — agregar un manejador (método sin valor de retorno, que acepta una cadena) en el nivel especificado (número entero del 1 al 10); 'REMOVE <nivel> <nombre_del_manejador>' — eliminar un manejador de un nivel; 'FIRE <nivel> <evento>' — invocar todos los manejadores del nivel especificado con el evento dado (cadena). Los manejadores en un mismo nivel se invocan en el orden de agregación. Si un manejador con el mismo nombre ya existe en el nivel, no se agrega nuevamente. Al eliminar un manejador inexistente, no ocurre nada. Los nombres de los manejadores son letras latinas y dígitos, de hasta 20 caracteres. Los eventos son cadenas arbitrarias sin espacios de hasta 100 caracteres.
Formato de entrada
En la primera línea, un número entero N (1 ≤ N ≤ 1000) — cantidad de comandos. Luego N líneas de comandos en el formato: ADD <nivel> <nombre_del_manejador> o REMOVE <nivel> <nombre_del_manejador> o FIRE <nivel> <evento>.
Formato de salida
Para cada comando FIRE, imprima una línea que contenga los resultados de la invocación de todos los manejadores de ese nivel, separados por un espacio, en el orden de invocación. Si no hay manejadores en el nivel, imprima 'NONE'. Cada manejador imprime en la consola una línea con el formato '<nombre_del_manejador>:<evento>'.