여행
시간 제한1초메모리 제한1024 MB
트리에서 각 도시의 목록 맨 앞 도로를 매번 골라 뒤로 보내며 이동할 때, 친구들이 사는 도시를 순서대로 모두 방문하는 최소 날짜를 구합니다.
여행
Yan은 자동차를 타고 Iatiland 나라 곳곳을 여행하는 것을 즐긴다.
Yan은 오랫동안 여행하면서 나라 전체 지도를 정리해 두었다. Iatiland의 도시는 번부터 번까지 번호가 매겨져 있고, 서로 다른 두 도시를 잇는 양방향 직접 도로가 있다. 각 도시마다 직접 도로로 갈 수 있는 도시의 목록이 있다. 임의의 두 도시 사이에는 경로가 하나만 존재함이 보장된다. 경로가 직접 도로 하나일 필요는 없고, 여러 직접 도로를 거칠 수 있다. 따라서 직접 도로는 모두 개이다.
Yan은 체계적으로 여행하기 위해 다음 알고리즘에 따라 움직인다.
Yan은 1일차에 도시 에서 출발한다. 그 뒤로는 매일 현재 도시에서 직접 도로 하나를 따라간다. 선택하는 도로는 항상 현재 도시 목록의 맨 앞에 있는 도로이다. 도로를 고른 뒤에는 그 도로를 목록의 맨 앞에서 빼내어 맨 뒤에 붙인다.
Yan의 주된 목적은 친구들을 만나 이야기를 나누는 것이다. 친구는 명이고 번부터 번까지 번호가 있으며, 친구 는 도시 에 산다. Yan은 현재 도시가 일 때만 친구 를 만날 수 있다. 또한 Yan은 주어진 순서대로 친구를 만나므로, 친구 를 만나기 전에 친구 을 만날 수 없다.
모든 친구를 올바른 순서대로 만날 때까지 걸리는 최소 일수를 구하라.
입력
첫 줄에 두 수 과 이 주어진다.
이어서 개의 줄이 주어진다. 번째 줄에는 도시 에서 직접 도로로 나갈 수 있는 경로의 수 와, 도시 와 직접 도로로 연결된 도시들의 초기 목록 개가 주어진다.
마지막 줄에는 Yan의 친구들이 사는 도시 가 개 주어진다.
출력
최소 일수를 한 줄에 출력한다.