FlightMania
Tiempo:
1000 ms
Memoria:
64000 KB
Avanzado (80)
La aerolínea FlightMania quiere asegurarse de que su sistema de aeropuertos y vuelos permita alcanzar cualquier aeropuerto desde cualquier otro mediante una secuencia de vuelos. Por desgracia, ahora mismo su red de aeropuertos puede no cumplir esta condición. Tu tarea es determinar el número mínimo de vuelos adicionales que tenemos que añadir.
## Entrada
La entrada consiste en varios casos de prueba. Cada caso de prueba comienza con dos enteros $n$ y $m$ $(1 \le n \le 300, 0 \le m \le n \cdot (n-1))$, representando el número de aeropuertos y el número de vuelos directos existentes, respectivamente.
Las siguientes $n$ líneas contienen el nombre de cada aeropuerto. Todos los nombres son únicos y tienen hasta 10 caracteres.
Las siguientes $m$ líneas contienen vuelos directos en el formato $u$ -> \(v\), indicando un vuelo desde el aeropuerto $u$ al aeropuerto $v$.
La entrada finalizará con un caso de prueba donde no hayan aeropuertos ni vuelos, que no se deberá procesar.
## Salida
Para cada caso de prueba, imprime una línea con el número mínimo de vuelos necesarios que se deben añadir para que desde cada uno de los aeropuertos se pueda llegar a cualquier otro.
Ejemplos
Ejemplo 1
Entrada
7 6 BCN VLC MAD SEV ALC CDT ZAZ BCN -> VLC VLC -> MAD MAD -> BCN ZAZ -> SEV SEV -> CDT CDT -> ZAZ 2 0 VLC MAD 2 2 VLC MAD MAD -> VLC VLC -> MAD 0 0
Salida
3 2 0