바이트랜드(Byteland)는 양방향 도로로 연결된 여러 도시로 이루어진 섬이다. 도로망은 임의의 두 도시 사이를 잇는 경로가 (되돌아가지 않는 한) 정확히 하나만 존재하도록 만들어져 있다. 즉, 도시와 도로는 하나의 트리를 이룬다.
어려운 시기가 닥쳐, 바이트랜드는 전쟁을 준비하고 있다. 수석 전략가는 일부 도로에 바리케이드를 설치하여 특별 보안 구역(special security zone)을 만들려고 한다. 바리케이드가 설치된 도로로는 아무도 지나갈 수 없다. 이 구역이 안전하려면 다음 조건을 모두 만족해야 한다.
여러 개의 k 값에 대해, 정확히 k개의 도시로 이루어진 특별 보안 구역을 만들기 위해 최소한 몇 개의 도로에 바리케이드를 설치해야 하는지 구하여라.
도로망과 질의 목록을 입력받아, 각 질의마다 요구된 크기의 특별 보안 구역을 만드는 데 필요한 최소 바리케이드 수를 표준 출력에 출력하는 프로그램을 작성하여라.
첫째 줄에 도시의 수 n (1≤n≤3000)이 주어진다. 도시는 1,2,…,n번으로 번호가 매겨져 있다.
다음 n−1개의 줄에는 각각 공백 하나로 구분된 두 정수 a, b (1≤a,b≤n)가 주어지며, 도시 a와 도시 b를 직접 잇는 도로를 나타낸다. 임의의 두 도시는 최대 하나의 직접 도로로 연결된다.
그다음 줄에는 질의의 수 m (1≤m≤n)이 주어진다. 이어지는 m개의 줄에는 각각 하나의 정수 ki (1≤ki≤n)가 주어진다. i번째 질의는 정확히 ki개의 도시로 이루어진 특별 보안 구역을 요구한다.
정확히 m개의 줄을 출력한다. i번째 줄에는 다음을 출력한다.