F - Test

Languages: C, C++, Java, JavaScript, Pascal, Tiger, Haskell, Python, C#
Time & Memory limits: (details)

Un  test de preferencia vocacional, a diferencia de uno de aptitud, trata de identificar carreras que el candidato  pudiera  encontrar  satisfactorias.  Basándose  en las respuestas a un grupo de preguntas el test determina que ocupación se ajusta mejor a la personalidad del candidato. Cada  pregunta  le  pide  al  candidato  que  escoja  su  actividad  preferida  de  un  grupo  de  cinco opciones, seleccionadas de un grupo  mayor. Es decir que las mismas actividades pueden aparecer en diferentes preguntas.

Si  un  candidato  responde  A  en  una  pregunta  que  contiene  A,  B,  C,  D,  E  como  alternativas,  esto indica preferencia de A sobre  B, C, D, E. También si una respuesta indica preferencia de A sobre B y otra respuesta de B sobre C, entonces el conjunto de todas las respuestas indica preferencia de A sobre C. El  candidato  puede  expresar  respuestas  contradictorias,  es  decir,  las  respuestas  pueden  indicar preferencia de A sobre B y de B sobre A. Estas contradicciones indican inconsistencia, un atributo de la personalidad que puede sugerir una carrera en política o como vendedor de autos usados.

Dado un conjunto de respuestas a un test de preferencia vocacional, debes encontrar una partición del conjunto de actividades  en  el menor número de conjuntos,  de forma que en cada conjunto,  para todo par de actividades, las respuestas expresen contradicción de preferencia para esas actividades.


Input

La entrada consiste de múltiples casos  seguidos por una  línea  con 0.  Cada caso comienza con  $n$,  el  número  de  preguntas  en  el  test.  Las  siguientes  $n$  líneas  contienen  los  nombres  de  cinco  actividades distintas y la escogida por el candidato  (una de las cinco alternativas).  El nombre de cada actividad  es una letra mayúscula.

Output

Por  cada  caso  imprimir  los  conjuntos,  cada  uno  en  una  línea.  Imprimir  los  elementos  de  cada conjunto en orden alfabético y los conjuntos por el orden alfabético de su menor elemento. La unión de todos  los  conjuntos  debe  ser  el  conjunto  original  de  actividades  y  para  todo  par  de  conjuntos  la intersección debe ser vacía. Imprimir una línea en blanco entre cada caso.


Sample test(s)

Input
4 A B C D E C F C H I J J K B H I F I K C E B J K 0
Output
A B C D E F H I J K