여러 스타트업 회사가 더 나은 인터넷인 "파이버넷(FiberNet)"을 구축하기로 했습니다. 이들은 이미 전 세계에 라우터 역할을 하는 노드를 많이 설치했습니다. 그러나 연결 회선을 두고 다투게 되었고, 결국 각 회사가 일부 노드 사이에 자신만의 케이블을 따로 설치하게 되었습니다.
이제 노드 $A$에서 노드 $B$로 데이터를 보내려는 서비스 제공자들은 어떤 회사가 필요한 연결을 제공할 수 있는지 알고 싶어 합니다. 각 질의에 답하여 이들을 도와주세요.
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 네트워크의 노드 수 $n$으로 시작합니다. $n = 0$이면 입력이 종료됩니다. 그렇지 않으면 $1 \le n \le 200$이며, 노드에는 $1, \dots, n$의 번호가 붙습니다.
그 다음에는 연결 목록이 이어집니다. 각 연결은 두 정수 $A$, $B$로 시작합니다. 연결 목록은 $A = B = 0$으로 종료됩니다. 그렇지 않으면 $1 \le A, B \le n$이며, 각각 단방향(유향) 연결의 시작 노드와 끝 노드를 나타냅니다. 각 연결에서 두 노드 뒤에는 노드 $A$에서 노드 $B$로 가는 연결을 가진 회사들이 이어집니다. 각 회사는 하나의 소문자로 구분되며, 그 연결을 가진 회사들의 집합은 소문자로만 이루어진 하나의 단어로 주어집니다.
연결 목록 다음에는 질의 목록이 이어지고, 이것으로 테스트 케이스가 끝납니다. 각 질의는 두 정수 $A$, $B$로 이루어집니다. 질의 목록(그리고 그 테스트 케이스)은 $A = B = 0$으로 종료됩니다. 그렇지 않으면 $1 \le A, B \le n$이며, 각각 질의의 시작 노드와 끝 노드를 나타냅니다. 어떤 연결이나 질의도 시작 노드와 끝 노드가 같지 않다고 가정해도 됩니다.
각 테스트 케이스의 각 질의마다, 자신의 연결만을 사용하여 질의의 시작 노드에서 끝 노드로 데이터 패킷을 전달할 수 있는 모든 회사의 식별자를 한 줄에 출력합니다. 식별자는 알파벳 오름차순으로 구분자 없이 이어 붙여 출력합니다. 그러한 회사가 하나도 없으면 대신 -를 출력합니다. 각 테스트 케이스 뒤에는 빈 줄을 하나 출력합니다.