G - Grupos de trabajo

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

La tía de Fito es una alta directiva en una empresa de desarrollo de software, donde cada empleado es miembro de uno o más grupos de trabajo. La empresa utiliza metodologías de desarrollo ágiles , y como consecuencia los grupos de trabajo a menudo se reorganizan y sus miembros cambian con frecuencia, por lo que la gestión de la membresía es un constante dolor de cabeza.

La tía de Fito actualiza la información de pertenencia siempre que se produzcan cambios: por ejemplo, la siguiente línea escrita por ella significa que Carol y Alice son los miembros del Grupo de Diseño:

diseño: carol, alice.

El nombre anterior a los dos puntos es el nombre del grupo y los nombres siguientes especifican sus miembros.

Un grupo de trabajo pequeño puede ser incluido en uno más grande. Así, un nombre de grupo puede aparecer como un miembro de otro grupo, por ejemplo, como sigue:

desarrollo: eva, alice, diseño.

Esto significa que al grupo desarrollo pertenecen eva, alice y carol.

Para ayudar a la tía de Fito nuestra misión en este problema es escribir un programa que, dadas las especificaciones de los grupos, identifique los miembros del primero.

Input

La entrada contiene varios casos de prueba (a lo sumo $50$). La primera línea de cada caso contiene un entero $N$ $(1 \le N \le 100)$ que representa el número de grupos que se describen. Cada una de los siguientes $N$ líneas contiene la información de pertenencia al grupo en el formato que se describió anteriormente.

Ningún grupo se describe dos veces y los miembros que se especifican en la entrada ( a lo sumo $20$ ) son grupos solo cuando estos están descritos en una de las $N$ líneas, de lo contrario son nombres de trabajadores. No hay definiciones circulares (o recursivas) de los grupos y los nombres de los miembros de un grupo son diferentes entre sí. Cada nombre de grupo o de los empleados es una cadena de caracteres no vacía de longitud entre $1$ y $15$, ambos inclusive, y se compone de letras minúsculas del alfabeto inglés.

El final de la entrada se indica por una línea que contiene un cero.

Output

Para cada conjunto de datos se debe imprimir en una línea la cantidad de empleados incluidos en el primer grupo del conjunto de datos, es decir el grupo $1$.

Sample test(s)

Input
2 development:alice,bob,design,eve. design:carol,alice. 3 one:another. another:yetanother. yetanother:dave. 3 friends:alice,bob,bestfriends,carol,fran,badcompany. bestfriends:eve,alice. badcompany:dave,carol. 5 a:b,c,d,e. b:c,d,e,f. c:d,e,f,g. d:e,f,g,h. e:f,g,h,i. 4 aa:bb. cc:dd,ee. ff:gg. bb:cc. 0
Output
4 1 6 4 2