You are given a tree . The tree has N nodes numbered from 1 to N and is rooted at node 1. You have to answer Q queries.

For each query, you would be given a subset of nodes. Let's say [V1, V2 ... Vk] . Select minimum number of edges from the original tree edges so that it becomes possible to travel from any Vi node to any Vj node of the given subset nodes for all 1 <= i <= j <= k

All queries are independent.

Input Format

First line will contain N, the number of vertices.
Next N-1 lines will contain two integers, U and V, denoting an undirected edge.
Next line will contain Q, the number of queries.
Each query will contain an integer k, followed by k integers denoting the subset of nodes.

Constraints

1 ≤ N ≤ 2*105
1 ≤ U,V ≤ N
U ≠ V
1 ≤ k ≤ N
sum of all k's for all queries ≤ 2*105

Output Format

For each query, output a single integer denoting the required answer.

Sample Input 0

6
1 2
1 3
2 4
2 5
3 6
2
3 2 4 5
2 6 1

Sample Output 0

2
2
Loading Editor...
  1. Challenge Walkthrough
    Let's walk through this sample challenge and explore the features of the code editor.1 of 6
  2. Review the problem statement
    Each challenge has a problem statement that includes sample inputs and outputs. Some challenges include additional information to help you out.2 of 6
  3. Choose a language
    Select the language you wish to use to solve this challenge.3 of 6
  4. Enter your code
    Code your solution in our custom editor or code in your own environment and upload your solution as a file.4 of 6
  5. Test your code
    You can compile your code and test it for errors and accuracy before submitting.5 of 6
  6. Submit to see results
    When you're ready, submit your solution! Remember, you can go back and refine your code anytime.6 of 6
  1. Check your score