Несколько начинающих компаний решили создать лучший Интернет, который они назвали "Файбер-Нет". Они уже установили множество узлов, работающие как маршрутизаторы по всему миру. К сожалению, они не пришли к единому согласию по поводу соединительных проводов, поэтому пришлось каждой компании прокладывать свой набор проводов между определенным набором узлов.
Теперь поставщики услуг, которые хотят передать данные от узла 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. Никакое соединение и никакой запрос не содержит одинаковых двух вершин.
Для каждого запроса каждого теста вывести строку, содержащую список всех компаний, которые могут передать пакет данных по собственным соединениям от начальной вершины к конечной. Если таковых компаний не существует, то вывести "-". После каждого теста следует выводить пустую строку.