물물교환

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

팀은 미래의 어느 시점에 중세 유물, 특히 그 시대 군대가 쓰던 무기와 갑옷이 매우 비싸진다는 사실을 알아냈다. 그는 중세로 시간 여행을 떠나 사슬 갑옷과 창 같은 물건을 모은 뒤, 나중에 그것들을 팔아 큰돈을 벌 계획이다.

문제는 그 시대 사람들이 받아 줄 화폐가 없다는 점이다. 따라서 필요한 물건은 모두 물물교환으로 얻어야 한다. 실제로 교환을 시작하기 전에, 팀은 각 물건을 얻는 데 필요한 교환 횟수를 미리 알고 싶어 한다. 그래야 교환이 적게 드는 물건부터 먼저 챙길 수 있기 때문이다.

타임머신은 한 번에 최대 5개의 물건만 실을 수 있으며, 팀은 교환을 마친 뒤 가진 물건이 5개를 넘게 되는 교환은 절대 하지 않는다.

입력

첫 줄에 데이터 집합의 개수 $K$가 주어진다. 각 데이터 집합은 다음과 같은 형식이다.

첫 줄에는 네 정수 $M$, $H$, $W$, $T$가 주어진다.

  • $1 \le M \le 20$: 팀이 하려는 교환의 최대 횟수
  • $1 \le H \le 5$: 팀이 처음에 가진 물건의 수
  • $1 \le W \le 5$: 팀이 원하는 물건의 수
  • $1 \le T \le 20$: 가능한 교환의 수

다음 줄에는 팀이 가진 물건의 이름 $H$개가 주어진다. 그다음 줄에는 팀이 원하는 물건의 이름 $W$개가 주어진다.

이어서 $T$개의 교환이 각각 두 줄로 주어진다. 교환의 첫 줄에는 정수 $1 \le g \le 5$와 팀이 내주는 $g$개 물건의 이름이 주어지고, 둘째 줄에는 정수 $1 \le a \le 5$와 팀이 받는 $a$개 물건의 이름이 주어진다.

교환을 하려면 팀이 내줄 물건을 모두 지금 가지고 있어야 하며, 교환을 마친 뒤 가진 물건의 총 개수가 5개를 넘어서는 안 된다.

출력

각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. 여기서 $x$는 데이터 집합의 번호이며 1부터 시작한다. 다음 줄에는 최대 $M$번의 교환으로 원하는 물건을 모두 얻는 데 필요한 최소 교환 횟수를 출력하고, 그것이 불가능하면 Impossible.을 출력한다. 연속한 데이터 집합 사이에는 빈 줄을 하나 넣는다.