Problema número 745

Cifrado Excel

Tiempo máximo: 1,000-2,000 sMemoria máxima: 4096 KiB
Imagen de una hoja de cálculo con un candado encima

Guillermito Puertas descubrió hace unos días el cifrado César, un mecanismo clásico de encriptación de mensajes, y se ha empezado a interesar por la criptografía. Pese a su corta edad, está decidido a revolucionar el área y lleva desde entonces pensando un método de codificar mensajes que sea mucho más robusto que el de los antiguos romanos.

Como no sabe programar bien, ha estado toda la mañana con una hoja de cálculo abierta, metiendo fórmulas en celdas, que es hasta donde llegan sus habilidades de automatización, intentando cifrar cadenas escritas en otras celdas. Y, de repente, ha tenido una visión.

Cuando empezó a usar hojas de cálculo le resultó curioso que las filas se identificaran con números y sin embargo para las columnas se utilizaran letras. Pero acaba de ver esto no como una curiosidad, sino como una oportunidad. Después de las 26 primeras columnas nombradas con las letras de la A a la Z, la siguiente, la número 27, se etiqueta como la AA. La segunda letra, la de la derecha, "da la vuelta" y empieza de nuevo y, para indicar que se está en la segunda vuelta, se pone una A nueva a la izquierda. Así, la columna AY es la 51. Cuando se da la vuelta entera otra vez, la A de la izquierda se convierte en una B y se empieza otra vez. Cuando esa segunda letra da la vuelta entera al abecedario, se añade una nueva A más a la izquierda y se repite el ciclo. Así, la columna ALL es la número 1000.

Guillermito se ha dado cuenta de que esto puede usarlo para encriptar. Para cada palabra escribe un número que indique la columna, y la palabra es el identificador de ese número de columna en su hoja de cálculo. Es verdad que con esto solo puede codificar palabras mayúsculas que usen el alfabeto inglés. Pero ¿no pasaba algo parecido con el cifrado César? Ha decidido llamar a su sistema Cifrado Excel.

Entrada

Cada caso de prueba es una sucesión de números (como mucho 1000) terminada con un 0. Cada número representa un número de columna en una hoja de cálculo.

La entrada termina con un 0 (un caso sin palabras) que no debe procesarse.

Salida

Por cada caso de prueba el programa escribirá, en una sola línea, todas las palabras codificadas en el caso, separadas por espacio. Se garantiza que ninguna palabra tendrá más de 12 letras que se corresponde con una codificación algo menor de 1017.

Entrada de ejemplo

1 27 51 703 1000 0
19397 940476005 0
0

Salida de ejemplo

A AA AY AAA ALL
ABRA CADABRA