만드는 중입니다

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

신나는 여행

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

요약
트리 위에서 날마다 방문할 도시 순서가 주어질 때, 같은 도시를 두 번 지나지 않도록 필요한 요트 이용 횟수의 최솟값을 구합니다.
난이도

보통10점 중 7점

유형
트리, 그리디, 이분 탐색
정답자
아직 제출이 없습니다

문제

IODS 팀 선발을 마친 뒤, 쉬기 위해 새로운 나라로 여행을 가려고 한다. 이 나라에는 nn개의 도시가 있으며, n−1n-1개의 양방향 도로로 연결되어 있다. 임의의 두 도시 사이에는 유일한 단순 경로가 있다.

앞으로 mm일 동안 이 나라를 둘러보려고 한다. 각 날마다 차례대로 방문할 도시 kk개 x_1,x_2,…,x_kx\_1, x\_2, \ldots, x\_{k}가 정해져 있다. 하루를 시작할 때 출발 도시를 아무 도시로나 고를 수 있고, 그다음 x_1x\_1, x_2x\_2, ..., 마지막으로 x_kx\_k에 도착하면 그날의 여행이 끝난다.

여행을 더 재미있게 하려고, 하루 동안 같은 도시를 두 번 이상 지나지 않으려고 한다. 어느 순간에든 현재 도시에서 도로를 따라 다른 도시로 갈 수도 있고, 요트를 타고 아무 도시로나 갈 수도 있다.

각 날의 여행마다, 같은 도시를 두 번 지나지 않도록 하면서 필요한 최소 요트 탑승 횟수를 구하려고 한다. 각 날의 여행은 서로 독립적이다. 즉, 전날 지나간 도시라도 다음 날 다시 지나갈 수 있다.

입력

첫 줄에 두 정수 nn과 mm이 주어진다 (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5, 0≤m≤5⋅1040 \le m \le 5 \cdot 10^4).

다음 n−1n-1개 줄에는 각각 두 정수 xx, yy (1≤x,y≤n1 \le x,y \le n, x≠yx \ne y)가 주어지며, 이는 정점 xx와 yy 사이에 양방향 간선이 있다는 뜻이다. 주어진 그래프는 연결되어 있다고 보장된다.

다음 mm개 줄에는 질의가 kx_1x_2…x_kk x\_1 x\_2 \ldots x\_k 형식으로 주어진다. 1≤x_i≤n1 \le x\_i \le n이고, 1≤i<j≤k1 \le i < j \le k인 모든 ii, jj에 대해 x_i≠x_jx\_i \ne x\_j임이 보장된다.

한 테스트 케이스에서 kk의 합은 2⋅1052 \cdot 10^5을 넘지 않는다.

출력

각 날마다 한 줄에 필요한 요트 탑승 횟수의 최솟값을 정수 하나로 출력한다.

힌트

첫 번째 샘플 테스트 케이스에 해당하는 그림이다

두 번째 샘플 테스트 케이스에 해당하는 그림이다

예제2

  1. 예제 1

    입력
    5 3
    1 2
    1 3
    2 4
    2 5
    3 1 4 5
    4 1 2 4 3
    4 2 4 5 1
    
    예상 출력
    1
    1
    2
    
  2. 예제 2

    입력
    8 7
    1 2
    1 3
    1 4
    2 5
    2 6
    5 7
    3 8
    1 4
    2 1 7
    3 5 2 4
    4 3 6 1 4
    6 5 3 7 1 2 4
    6 4 8 3 5 6 1
    7 2 8 5 4 6 1 3
    
    예상 출력
    0
    0
    0
    1
    4
    3
    5