Файбер-Нет
Декілька починаючих компаній вирішили створити кращий Інтернет, який вони назвали "Файбер-Нет". Вони вже встановили множину вузлів, які працюють як маршрутизатори по усьому світу. На жаль, вони не прийшли до єдиного узгодження з приводу з'єднувальних проводів, тому прийшлось кожній компаниї прокладати свій набір проводів між певним набором вузлів.
Тепер постачальники послуг, які хочуть передати дані від вузла A до вузла B, хочуть вияснити, яка з компаній забезпечить необхідні підключення. Допоможіть провайдерам відповісти на їхні запити.
Вхідні дані
Вхідні дані складаються з декількох тестів. Кожен тест починається з кількості вершин n (1 ≤ n ≤ 200) мережі. Завершуються вхідні дані рядком n = 0. Вершини пронумеровано числами 1, ..., n. Далі йде набор з'єднань. Кожне з'єднання починається парою чисел A, B (1 ≤ A, B ≤ n) - початкова та кінцева вершина однонаправленого з'єднання. Список з'єднань завершується рядком A = B = 0. Для кожного з'єднання після двох вершин йдуть компанії, які мають з'єднання від A до B. Компанія задається буквою нижнього регістру. Множина компаній, які мають право на задане з'єднання, являють собою слово з букв нижнього регістра.
За списком з'єднань у кожному тесті йде набір запитів. Кожен запит задається двома числами A, B (1 ≤ A, B ≤ n) - початкова та кінцева вершина запиту. Список (а з ним і сам тест) завершується рядком A = B = 0. Ніяке з'єднання і ніякий запит не містить однакових двох вершин.
Вихідні дані
Для кожного запиту кожного тесту вивести рядок, який містить список усіх компаній, які можуть передати пакет даних по власним з'єднанням від початкової вершини до кінцевої. Якщо таких компаній не існує, то вивести "-". Після кожного тесту потрібно виводити порожній рядок.