Файбер-Нет#6119

Файбер-Нет

1 секунда
64 мегабайти
Середня

Декілька стартапів вирішили створити кращий Інтернет, який вони назвали Файбер-Нет. Вони вже встановили багато вузлів, які працюють як маршрутизатори по всьому світу. Проте компанії не змогли домовитися щодо з'єднувальних кабелів, тому кожна з них проклала власний набір кабелів між деякими вузлами.

Тепер провайдери, які хочуть передавати дані від вузла до вузла , зацікавлені дізнатися, яка з компаній може надати потрібні з'єднання. Допоможіть провайдерам відповісти на їхні запити.

Вхідні дані

Вхідні дані складаються з кількох тестових випадків. Кожен тестовий випадок починається з числа вузлів мережі . Вхідні дані завершуються рядком n = 0. Інакше 1 \leq n \leq 200. Вузли пронумеровані числами від до . Далі наводиться перелік з'єднань. Кожне з'єднання починається з двох чисел , . Перелік з'єднань завершується рядком A = B = 0. Інакше 1 \leq A, B \leq n, де — початковий, а — кінцевий вузол односпрямованого з'єднання. Для кожного з'єднання після двох вузлів вказуються компанії, які мають з'єднання від до . Компанія позначається маленькою літерою латинського алфавіту. Множина таких компаній — це слово, складене з маленьких латинських літер.

Після списку з'єднань кожен тестовий випадок завершується списком запитів. Кожен запит складається з двох чисел , . Список (а з ним і тестовий випадок) завершується рядком A = B = 0. Інакше 1 \leq A, B \leq n, де — початковий, а — кінцевий вузол запиту. Гарантується, що не існує з'єднань чи запитів, у яких початковий і кінцевий вузол збігаються.

Вихідні дані

Для кожного запиту у всіх тестових випадках виведіть рядок, в якому міститимуться ідентифікатори всіх компаній, які можуть здійснити передачу даних по власних з'єднаннях від початкового до кінцевого вузла у запиті. Якщо таких компаній немає, виведіть "-". Після кожного тестового випадку виводьте порожній рядок.

Приклади

Приклад 1

Loading
Loading