철광석과 석탄

철과 석탄이 있는 칸이 정해진 방향 그래프에서 1번 칸에서 시작해 철 칸 하나와 석탄 칸 하나를 차지하는 데 필요한 최소 정착민 수를 구한다.

보통7그래프BFS최단 경로아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

전략 보드게임 강철시대에서 당신이 즐겨 쓰는 전술은 병사를 최대한 많이 뽑아 상대를 밀어붙이는 것이다. 병사를 만들려면 철광석과 석탄이라는 두 자원이 모두 필요하다.

게임판은 1번부터 nn번까지 번호가 붙은 칸으로 이루어지고, 칸에는 자원이 놓여 있을 수 있다. 칸 사이의 이동은 한쪽 방향으로만 열려 있기도 하다. 칸 A에서 칸 B로 갈 수 있다고 해서 B에서 A로 갈 수 있는 것은 아니다. 예를 들어 두 칸이 강으로 이어져 있으면 증기기관을 발명하기 전까지는 하류로만 내려갈 수 있다. 그래도 도로를 타고 다른 칸을 빙 돌아가면 상류 칸에 닿기도 한다.

게임을 시작할 때 소유한 칸은 하나뿐이고 개척자는 모두 그 칸에 모여 있다. 한 번의 이동에서 개척자를 원하는 수만큼 한 칸에서 그 칸과 이어진 칸으로 옮길 수 있다. 개척자가 어떤 칸에 처음 들어가면 그 칸을 점령한다. 점령한 칸마다 개척자 한 명이 묶여서 게임이 끝날 때까지 그 칸에 남아야 한다. 처음부터 소유한 칸에는 궁전이 있어서 개척자를 남기지 않아도 점령 상태로 계속 남는다.

철광석이 있는 칸과 석탄이 있는 칸을 각각 하나 이상 점령하는 것이 목표다. 목표를 이루는 데 필요한 개척자의 최소 인원을 구하라.

입력

첫째 줄에 칸의 개수 nn, 철광석이 있는 칸의 개수 mm, 석탄이 있는 칸의 개수 kk가 주어진다. (2n1052 \le n \le 10^5, 1m<n1 \le m < n, 1k<n1 \le k < n)

둘째 줄에 철광석이 있는 칸의 번호 o1,,omo_1, \dots, o_m이 주어진다. 번호는 서로 다르다. (1oin1 \le o_i \le n)

셋째 줄에 석탄이 있는 칸의 번호 c1,,ckc_1, \dots, c_k가 주어진다. 번호는 서로 다르다. (1cin1 \le c_i \le n)

다음 nn개의 줄에는 게임판의 연결 관계가 주어진다. 그중 jj번째 줄에는 jj번 칸에서 갈 수 있는 칸의 개수 aa가 먼저 주어지고 (0a100 \le a \le 10), 이어서 그 칸들의 번호 b1,,bab_1, \dots, b_a가 주어진다. 번호는 서로 다르고 bijb_i \ne j이다. (1bin1 \le b_i \le n)

철광석과 석탄이 한 칸에 함께 있는 경우는 없다. 게임을 시작할 때 소유한 칸은 1번 칸이다.

출력

철광석이 있는 칸과 석탄이 있는 칸을 각각 하나 이상 점령하는 데 필요한 개척자의 최소 인원을 출력한다. 두 자원을 모두 점령할 수 없으면 impossible을 출력한다.