사악한 마법사가 왕좌의 방으로 들이닥쳤다. 용사 일행이 또 동굴에 쳐들어왔다. 하필 함정을 정비하느라 모두 꺼 둔 사이에 들어와서는 동굴 안에 진까지 쳤다. 함정은 이제 다시 작동한다. 마법사는 훈련된 오크를 어디로 보낼지 지금 당장 알아내라고 명령한다. 앞서 입을 연 하인의 최후를 본 당신은 동굴 지도를 챙겨 들고 계산에 들어간다.
지도에는 $1$번부터 $n$번까지 번호를 붙인 요충지가 $n$개 있다. 통로는 모두 요충지 두 곳을 잇고, 함정은 모두 요충지에 놓여 있으며, 막다른 곳도 모두 요충지다. 한 요충지에 이어진 통로는 많아야 세 개다. $1$번 요충지는 바깥으로 나가는 입구이고 통로가 정확히 하나 있다. 어느 요충지에서든 입구까지 가는 길은 하나뿐이다. 통로가 하나뿐인 요충지는 막다른 곳이며 $1$번 요충지만 예외다.
주인은 통로 한가운데에 마법 관문을 연다. 요충지에는 열지 못한다. 관문에서 나온 오크는 먼저 입구의 빛에서 멀어지는 쪽으로 걷는다. 그다음부터는 이렇게 움직인다.
왼쪽과 오른쪽은 걷고 있는 오크가 보는 방향을 기준으로 삼는다. 지도가 요충지마다 통로를 시계 방향으로 적어 둔 이유가 여기에 있다.
오크가 들어가기 전에 수 $t$를 하나 알려 줄 수 있다. 그러면 갈림길에 $t$번째로 섰을 때만 왼쪽 대신 오른쪽 통로로 간다. 오크는 돌아올 때까지 수를 하나만 기억하므로 한 번 들어가서 오른쪽으로 꺾는 일은 많아야 한 번이다. 같은 관문으로 오크를 여러 번 들여보낼 수 있고 그때마다 다른 수를 알려 줘도 된다. 관문은 필요한 만큼 열어 둘 수 있다.
함정이 놓인 요충지를 밟은 오크는 그대로 잃는다. 주인은 이를 용납하지 않는다. 오크는 반드시 관문으로 돌아와야 하므로 $t$도 거기에 맞춰 골라야 한다.
용사 일행은 막다른 곳에 진을 쳤다. 그래서 함정을 지나지 않고 입구까지 갈 수 있는 막다른 곳은 오크가 모두 뒤져야 한다. 어떤 막다른 곳에서 입구까지 가는 길 위의 요충지 가운데 함정이 놓인 곳이 하나도 없으면 그곳은 뒤져야 한다. 그 막다른 곳 자체도 길에 포함한다. 주인이 여는 관문은 될 수 있는 대로 적어야 한다.
입력은 여러 데이터 집합으로 이루어진다. 각 집합의 첫 줄에는 정수 $n$과 $m$이 주어진다. $n$은 요충지 개수로 $2 \le n \le 50000$이고, $m$은 함정 개수로 $0 \le m \le 500$이다.
이어지는 $n$개 줄은 요충지를 설명한다. $i$번째 줄에는 $i$번 요충지에 이어진 통로 개수 $n_i$($1 \le n_i \le 3$)가 먼저 오고, 그 통로가 이어지는 요충지 번호 $n_i$개가 시계 방향으로 뒤따른다.
그다음 $m$개 줄에는 함정이 놓인 요충지 번호가 한 줄에 하나씩 주어진다.
$1$번 요충지는 입구이며 통로가 항상 정확히 하나다. 마지막 데이터 집합 다음에는 $0$ $0$만 있는 줄이 오고 이 줄은 처리하지 않는다.
데이터 집합마다 필요한 관문의 최소 개수를 한 줄에 하나씩 출력한다.