Preparando MOJI
You are given a tree with $$$n$$$ nodes and $$$q$$$ queries.
Every query starts with three integers $$$k$$$, $$$m$$$ and $$$r$$$, followed by $$$k$$$ nodes of the tree $$$a_1, a_2, \ldots, a_k$$$. To answer a query, assume that the tree is rooted at $$$r$$$. We want to divide the $$$k$$$ given nodes into at most $$$m$$$ groups such that the following conditions are met:
You need to output the number of ways modulo $$$10^{9}+7$$$ for every query.
The first line contains two integers $$$n$$$ and $$$q$$$ ($$$1 \le n, q \le 10^{5}$$$) — the number of vertices in the tree and the number of queries, respectively.
Each of the next $$$n-1$$$ lines contains two integers $$$u$$$ and $$$v$$$ ($$$1 \le u, v \le n, u \ne v$$$), denoting an edge connecting vertex $$$u$$$ and vertex $$$v$$$. It is guaranteed that the given graph is a tree.
Each of the next $$$q$$$ lines starts with three integers $$$k$$$, $$$m$$$ and $$$r$$$ ($$$1 \le k, r \le n$$$, $$$1 \le m \le min(300,k)$$$) — the number of nodes, the maximum number of groups and the root of the tree for the current query, respectively. They are followed by $$$k$$$ distinct integers $$$a_1, a_2, \ldots, a_k$$$ ($$$1 \le a_i \le n$$$), denoting the nodes of the current query.
It is guaranteed that the sum of $$$k$$$ over all queries does not exceed $$$10^{5}$$$.
Print $$$q$$$ lines, where the $$$i$$$-th line contains the answer to the $$$i$$$-th query.
7 2 5 4 2 6 5 3 1 2 7 5 4 6 3 3 2 7 4 3 3 1 4 6 2 1
2 0
7 2 4 7 2 5 4 1 5 1 5 6 4 3 3 3 2 7 1 4 2 1 6 3 2
1 1
5 2 3 5 4 5 4 2 1 4 2 2 3 1 2 2 2 4 5 4
2 1
Consider the first example.
In the first query, we have to divide the three given nodes ($$$7$$$, $$$4$$$ and $$$3$$$), into the maximum of three groups assuming that the tree is rooted at $$$2$$$. When the tree is rooted at $$$2$$$, $$$4$$$ is an ancestor of both $$$3$$$ and $$$7$$$. So we can't put all the nodes into one group. There is only $$$1$$$ way to divide the given nodes into two groups, which are $$$[4]$$$ and $$$[3, 7]$$$. Also, there is only one way to divide the given nodes into three groups, which are $$$[7]$$$, $$$[4]$$$ and $$$[3]$$$. So, there are total $$$2$$$ ways to divide the given nodes into a maximum of three groups.
In the second query, when the tree is rooted at $$$4$$$, $$$6$$$ is an ancestor of $$$2$$$ and $$$2$$$ is an ancestor of $$$1$$$. So, we can't put all the given nodes into one group.