악당의 선거

방향이 있는 설득 관계와 이미 포섭한 대표 집합이 주어질 때, 목표 집합 V에서 도달 가능한 이름을 사전순으로 출력한다.

쉬움3그래프BFS해시맵정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

딜런은 선거를 조작하려는 부패한 정치인이다. 그는 이미 정신 조종 기술로 정부 대표 몇 명을 손에 넣었고, 이 대표들의 집합을 UU라고 한다. 그런데 선거의 승자를 뽑는 대표는 다른 집합 VV이다. 딜런은 정신 조종 장치를 다시 쓰지 않기를 바라며, VV의 대표 중 누구를 UU의 대표들로 설득해 자신에게 투표하게 만들 수 있는지 알고 싶어 한다.

다행히 대표들은 설득력이 있다. 대표 쌍 (A,B)(A, B)의 목록이 주어지는데, 이 쌍은 AABB를 설득해 딜런에게 투표하게 만들 수 있다는 뜻이다. 설득은 연쇄적으로 이어질 수 있다. 예를 들어 딜런이 AA를 조종하고 있고, AABB를 설득할 수 있으며 BBCC를 설득할 수 있다면, 결과적으로 AACC도 설득할 수 있다. 설득은 한 방향으로만 작용한다. 쌍 (A,B)(A, B)가 있어도 BBAA를 설득할 수 있는 것은 아니다.

UU에 속한 대표는 이미 조종당하고 있으므로 설득할 필요 없이 딜런에게 투표한다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. (1T101 \le T \le 10)

각 테스트 케이스의 첫째 줄에 세 정수 uu, vv, mm이 공백으로 구분되어 주어진다. (1u,v,m100001 \le u, v, m \le 10\,000)

둘째 줄에는 UU에 속한 대표 uu명의 이름이, 셋째 줄에는 VV에 속한 대표 vv명의 이름이 공백으로 구분되어 주어진다.

다음 mm개의 줄에는 각각 A B 꼴로 두 대표의 이름이 주어진다. 이는 AABB를 설득해 딜런에게 투표하게 만들 수 있다는 뜻이다. 이 쌍에 나오는 대표는 UUVV에 속하지 않을 수도 있다.

모든 이름은 알파벳 소문자(a부터 z)로만 이루어진 길이 11 이상 1010 이하의 문자열이다.

출력

각 테스트 케이스마다 한 줄에 VV의 대표 중 딜런에게 투표하게 만들 수 있는 대표의 이름을 사전순으로 공백으로 구분해 출력한다. 즉 UU에 속하거나, UU의 어떤 대표에서 시작하는 설득의 연쇄로 도달할 수 있는 대표를 출력한다.

VV의 목록에 같은 이름이 여러 번 나오더라도 한 번만 출력한다. 사전순은 문자열의 일반적인 사전식 비교를 따르며, 어떤 이름이 다른 이름의 접두사이면 짧은 이름이 먼저 온다. 그런 대표가 한 명도 없으면 빈 줄을 출력한다.

힌트

예제의 두 번째 테스트 케이스에서 질은 잭을 거쳐 사울을 설득할 수 있고, 피터는 이미 조종당하고 있다.