바리케이드

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

바이트랜드(Byteland)는 양방향 도로로 연결된 여러 도시로 이루어진 섬이다. 도로망은 임의의 두 도시 사이를 잇는 경로가 (되돌아가지 않는 한) 정확히 하나만 존재하도록 만들어져 있다. 즉, 도시와 도로는 하나의 트리를 이룬다.

어려운 시기가 닥쳐, 바이트랜드는 전쟁을 준비하고 있다. 수석 전략가는 일부 도로에 바리케이드를 설치하여 특별 보안 구역(special security zone)을 만들려고 한다. 바리케이드가 설치된 도로로는 아무도 지나갈 수 없다. 이 구역이 안전하려면 다음 조건을 모두 만족해야 한다.

  • 구역 안의 모든 도시에서 구역 안의 다른 모든 도시로 이동할 수 있어야 한다.
  • 구역 밖의 도시에서 구역 안의 도시로는 이동할 수 없어야 한다.
  • 구역은 정확히 kk개의 도시로 이루어져야 한다.

여러 개의 kk 값에 대해, 정확히 kk개의 도시로 이루어진 특별 보안 구역을 만들기 위해 최소한 몇 개의 도로에 바리케이드를 설치해야 하는지 구하여라.

도로망과 질의 목록을 입력받아, 각 질의마다 요구된 크기의 특별 보안 구역을 만드는 데 필요한 최소 바리케이드 수를 표준 출력에 출력하는 프로그램을 작성하여라.

입력

첫째 줄에 도시의 수 nn (1n30001 \le n \le 3000)이 주어진다. 도시는 1,2,,n1, 2, \ldots, n번으로 번호가 매겨져 있다.

다음 n1n - 1개의 줄에는 각각 공백 하나로 구분된 두 정수 aa, bb (1a,bn1 \le a, b \le n)가 주어지며, 도시 aa와 도시 bb를 직접 잇는 도로를 나타낸다. 임의의 두 도시는 최대 하나의 직접 도로로 연결된다.

그다음 줄에는 질의의 수 mm (1mn1 \le m \le n)이 주어진다. 이어지는 mm개의 줄에는 각각 하나의 정수 kik_i (1kin1 \le k_i \le n)가 주어진다. ii번째 질의는 정확히 kik_i개의 도시로 이루어진 특별 보안 구역을 요구한다.

출력

정확히 mm개의 줄을 출력한다. ii번째 줄에는 다음을 출력한다.

  • 정확히 kik_i개의 도시로 이루어진 특별 보안 구역을 만들 수 없으면 1-1.
  • 그렇지 않으면, 그러한 구역을 만들기 위해 바리케이드를 설치해야 하는 도로의 최소 개수.