방향이 있는 설득 관계와 이미 포섭한 대표 집합이 주어질 때, 목표 집합 V에서 도달 가능한 이름을 사전순으로 출력한다.
쉬움3그래프BFS해시맵정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB딜런은 선거를 조작하려는 부패한 정치인이다. 그는 이미 정신 조종 기술로 정부 대표 몇 명을 손에 넣었고, 이 대표들의 집합을 U라고 한다. 그런데 선거의 승자를 뽑는 대표는 다른 집합 V이다. 딜런은 정신 조종 장치를 다시 쓰지 않기를 바라며, V의 대표 중 누구를 U의 대표들로 설득해 자신에게 투표하게 만들 수 있는지 알고 싶어 한다.
다행히 대표들은 설득력이 있다. 대표 쌍 (A,B)의 목록이 주어지는데, 이 쌍은 A가 B를 설득해 딜런에게 투표하게 만들 수 있다는 뜻이다. 설득은 연쇄적으로 이어질 수 있다. 예를 들어 딜런이 A를 조종하고 있고, A가 B를 설득할 수 있으며 B가 C를 설득할 수 있다면, 결과적으로 A는 C도 설득할 수 있다. 설득은 한 방향으로만 작용한다. 쌍 (A,B)가 있어도 B가 A를 설득할 수 있는 것은 아니다.
U에 속한 대표는 이미 조종당하고 있으므로 설득할 필요 없이 딜런에게 투표한다.
첫째 줄에 테스트 케이스의 수 T가 주어진다. (1≤T≤10)
각 테스트 케이스의 첫째 줄에 세 정수 u, v, m이 공백으로 구분되어 주어진다. (1≤u,v,m≤10000)
둘째 줄에는 U에 속한 대표 u명의 이름이, 셋째 줄에는 V에 속한 대표 v명의 이름이 공백으로 구분되어 주어진다.
다음 m개의 줄에는 각각 A B 꼴로 두 대표의 이름이 주어진다. 이는 A가 B를 설득해 딜런에게 투표하게 만들 수 있다는 뜻이다. 이 쌍에 나오는 대표는 U나 V에 속하지 않을 수도 있다.
모든 이름은 알파벳 소문자(a부터 z)로만 이루어진 길이 1 이상 10 이하의 문자열이다.
각 테스트 케이스마다 한 줄에 V의 대표 중 딜런에게 투표하게 만들 수 있는 대표의 이름을 사전순으로 공백으로 구분해 출력한다. 즉 U에 속하거나, U의 어떤 대표에서 시작하는 설득의 연쇄로 도달할 수 있는 대표를 출력한다.
V의 목록에 같은 이름이 여러 번 나오더라도 한 번만 출력한다. 사전순은 문자열의 일반적인 사전식 비교를 따르며, 어떤 이름이 다른 이름의 접두사이면 짧은 이름이 먼저 온다. 그런 대표가 한 명도 없으면 빈 줄을 출력한다.
예제의 두 번째 테스트 케이스에서 질은 잭을 거쳐 사울을 설득할 수 있고, 피터는 이미 조종당하고 있다.