만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

여행

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

요약
트리에서 각 도시의 목록 맨 앞 도로를 매번 골라 뒤로 보내며 이동할 때, 친구들이 사는 도시를 순서대로 모두 방문하는 최소 날짜를 구합니다.
난이도

보통10점 중 7점

유형
트리, 시뮬레이션, DFS
정답자
아직 제출이 없습니다

여행

Yan은 자동차를 타고 Iatiland 나라 곳곳을 여행하는 것을 즐긴다.

Yan은 오랫동안 여행하면서 나라 전체 지도를 정리해 두었다. Iatiland의 도시는 11번부터 NN번까지 번호가 매겨져 있고, 서로 다른 두 도시를 잇는 양방향 직접 도로가 있다. 각 도시마다 직접 도로로 갈 수 있는 도시의 목록이 있다. 임의의 두 도시 사이에는 경로가 하나만 존재함이 보장된다. 경로가 직접 도로 하나일 필요는 없고, 여러 직접 도로를 거칠 수 있다. 따라서 직접 도로는 모두 N−1N - 1개이다.

Yan은 체계적으로 여행하기 위해 다음 알고리즘에 따라 움직인다.

Yan은 1일차에 도시 11에서 출발한다. 그 뒤로는 매일 현재 도시에서 직접 도로 하나를 따라간다. 선택하는 도로는 항상 현재 도시 목록의 맨 앞에 있는 도로이다. 도로를 고른 뒤에는 그 도로를 목록의 맨 앞에서 빼내어 맨 뒤에 붙인다.

Yan의 주된 목적은 친구들을 만나 이야기를 나누는 것이다. 친구는 MM명이고 11번부터 MM번까지 번호가 있으며, 친구 ii는 도시 PiP_i에 산다. Yan은 현재 도시가 PiP_i일 때만 친구 ii를 만날 수 있다. 또한 Yan은 주어진 순서대로 친구를 만나므로, 친구 ii를 만나기 전에 친구 i+1i + 1을 만날 수 없다.

모든 친구를 올바른 순서대로 만날 때까지 걸리는 최소 일수를 구하라.

입력

첫 줄에 두 수 NN과 MM이 주어진다.

이어서 NN개의 줄이 주어진다. ii번째 줄에는 도시 ii에서 직접 도로로 나갈 수 있는 경로의 수 kik_i와, 도시 ii와 직접 도로로 연결된 도시들의 초기 목록 kik_i개가 주어진다.

마지막 줄에는 Yan의 친구들이 사는 도시 PiP_i가 MM개 주어진다.

출력

최소 일수를 한 줄에 출력한다.

제한

  • 1≤N≤5×1051 \le N \le 5 \times 10^5
  • 1≤M≤5×1051 \le M \le 5 \times 10^5
  • 1≤ki≤N−11 \le k_i \le N - 1
  • 1≤Pi≤N1 \le P_i \le N

예제1

  1. 예제 1

    입력
    4 4
    2 2 3
    1 1
    2 1 4
    1 3
    2 1 1 4
    
    예상 출력
    9