주차장

시간 제한1초메모리 제한128 MB

문제

지하 주차장은 여러 층에 걸쳐 있는 $N$개의 주차 공간으로 이루어져 있다. 각 주차 공간은 $1$부터 $N$까지의 서로 다른 번호로 구분되며, 자동차 한 대만 세울 수 있는 독립된 작은 방이다. 일부 방은 통로로 직접 연결되어 있다.

자동차는 다른 자동차가 세워져 있는 주차 공간을 지나갈 수 없다. 출구는 1번 방이며, 이 방에는 차를 세울 수 없지만 어떤 차든 이 방을 지나갈 수는 있다.

임의의 두 주차 공간 사이에는 유일한 경로가 존재하므로, 방들은 트리를 이룬다. 출구로 이어지는 모든 경로에서 이웃한 두 방은 서로 인접한 층에 있으며, 출구에 더 가까운 방이 항상 더 높은 층에 있다. 즉, 출구(1번 방)를 루트로 하여 트리를 세우면, 각 방의 부모는 항상 그 방보다 한 층 위에 있다.

Ralph는 P번 방에 차를 세웠고 이제 주차장을 나가려고 한다. 그런데 그가 지나가야 하는 방 중 일부에 다른 차들이 세워져 있다. 그는 출구로 가는 길에 있는, 차가 세워진 모든 방을 비워야 한다. 방법은 그 방에 있는 차를 한 층 아래의 방으로 미는 것이다. 한 번의 밀기는 자동차 한 대를 한 층 아래로, 즉 지금 있는 방에서 바로 아래 층에 직접 연결된 방으로 옮기는 것이며, 그 순간 목적지 방은 비어 있어야 한다(차는 다른 차가 있는 방을 지날 수 없다).

Ralph는 출구까지의 경로가 완전히 비워질 때까지 자기 차를 움직이지 않는다. P번 방에서 출구(1번 방)까지의 경로 위에 있는 모든 방을 비우기 위해 필요한 최소 밀기 횟수를 구하는 프로그램을 작성하라.

입력

첫째 줄에 세 정수 $N$, $P$, $K$가 주어진다 ($2 \le N \le 5000$, $2 \le P \le N$, $0 \le K \le N - 2$). $K$는 Ralph의 차를 제외하고 주차된 자동차의 수이며, Ralph의 차는 P번 방에 있다.

다음 $N$개의 줄은 각 주차 공간을 설명한다. $i + 1$번째 줄에는 $i$번 방과 직접 연결되어 있으면서 그보다 한 층 아래에 있는 방들이 다음 형식으로 주어진다:

T A1 A2 ... AT

여기서 $T$는 그러한 방의 개수이고, $A_1, A_2, \ldots, A_T$는 그 방들의 번호이다.

마지막 줄에는 $K$개의 정수가 주어지며, 이는 Ralph의 방 P번을 제외하고 차가 세워진 방들의 번호이다.

출력

출구까지의 경로를 비우기 위해 필요한 최소 밀기 횟수를 한 줄에 출력한다. 경로를 비우는 것이 불가능하면 대신 ne postoji를 한 줄에 출력한다.

힌트

자기 차는 밀 수 없다.