큐에 이름이 붙은 아이템 여러 개가 들어 있고, 큐 연산의 목록이 주어진다. 연산을 모두 수행한 뒤 큐에 남아 있는 아이템을 출력하는 프로그램을 작성하시오.
위치는 1번부터 시작한다. 즉 첫 번째 아이템이 1번 위치, 두 번째 아이템이 2번 위치에 있다. 각 연산은
시작 위치 → 도착 위치
형식이며, 시작 위치에 있는 아이템을 도착 위치로 옮긴다.
예를 들어 큐가 다음과 같다고 하자.
Item1 Item2 Item3 Item4 Item5
연산 5 → 2를 수행하면 Item5가 2번 위치로 이동하여 큐는 다음과 같이 된다.
Item1 Item5 Item2 Item3 Item4
여러 연산을 동시에 수행할 수도 있다. 예를 들어 큐가 다음과 같을 때
Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8
다음 연산들을
2 → 6, 6 → 3, 4 → 5, 5 → 2, 7 → 4, 8 → 1
동시에 수행하면 큐는 다음과 같이 된다.
Item8 Item5 Item6 Item7 Item4 Item2 Item1 Item3
모든 연산은 원래 큐에서의 위치를 가리킨다. 어떤 연산의 시작 위치도 아닌 아이템은 서로의 상대적인 순서를 유지한 채, 비어 있는 위치(어떤 연산의 도착 위치도 아닌 위치)로 순서대로 채워진다. 서로 다른 두 연산이 같은 시작 위치를 가지거나 같은 도착 위치를 가지는 경우는 없음이 보장된다.
첫째 줄에 테스트 케이스의 개수가 주어진다.
각 테스트 케이스의 첫째 줄에는 아이템의 수 $m$과 큐 연산의 수 $n$이 주어진다 ($1 \le m, n \le 20$). 둘째 줄에는 큐에 들어 있는 $m$개의 아이템 이름이 현재 순서대로 주어진다. 각 이름은 알파벳과 숫자로 이루어지며 길이는 최대 8이고, 한 테스트 케이스 안에서 이름이 같은 아이템은 없다. 다음 $n$개의 줄에는 각 연산이 시작 위치와 도착 위치를 나타내는 두 정수로 한 줄에 하나씩 주어진다.
각 테스트 케이스마다 모든 연산을 수행한 뒤 큐에 남아 있는 아이템을 순서대로 공백 하나로 구분하여 한 줄에 출력한다.