Consideremos un conjunto de personas y sus amistades. La amistad es simétrica: si Anna es amiga de Bernat, entonces Bernat es amigo de Anna.
Diremos que dos personas tienen los mismos amigos si el conjunto de amigos de la primera es exactamente igual al conjunto de amigos de la segunda. Por ejemplo, si Anna es amiga de Bernat y Carla, y Diana también es amiga de Bernat y Carla (y de nadie más), entonces Anna y Diana tienen los mismos amigos.
Observad que si dos personas tienen exactamente los mismos amigos, entonces no pueden ser amigas entre ellas.
Haced un programa que lea una lista de parejas de amigos y muestre todos los grupos de personas que tienen los mismos amigos. Cada grupo debe escribirse en una línea, con los nombres ordenados alfabéticamente.
En este problema el centro de interés es la eficiencia. Hay que encontrar una forma inteligente de agrupar las personas para evitar comparaciones innecesarias.
El orden de los grupos en la salida no es importante.
La entrada es una secuencia de parejas de nombres (en minúsculas, sin espacios internos), separados por un espacio, una pareja por línea, acabada por fin de entrada.
Para cada grupo de personas con los mismos amigos (de tamaño ), se escribe una línea con los nombres del grupo ordenados alfabéticamente y separados por espacios. El orden de los grupos no es importante.
Input
anna bernat anna carla bernat diana carla diana
Output
bernat carla anna diana
Input
alex bo alex clara alex dani bo enric bo fina clara enric clara fina dani enric dani fina gina hugo
Output
bo clara dani alex enric fina