给定一棵树,其顶点标号为 $1, 2, \dots, N$。
对于顶点的一个子集 $S \subseteq \{1, 2, \dots, N\}$,如果存在一条仅经过 $S$ 中顶点的路径,则称两个顶点 $(u, v)$ 在 $S$ 下是连通的。注意,这包括路径的端点,因此必须满足 $u, v \in S$。
例如,考虑以下树和集合 $S = \{1, 2, 3, 4, 5, 6\}$。
在这种情况下,$(1, 2)$、$(3, 5)$ 和 $(4, 6)$ 在 $S$ 下是连通的,而 $(1, 6)$ 和 $(2, 7)$ 在 $S$ 下不连通。
令 $strength(S)$ 为满足 $u \neq v$ 且 $(u, v)$ 在 $S$ 下连通的顶点对 $(u, v)$ 的数量。给定 $Q$ 次查询,每次查询包含一个集合 $S$。对于每次查询,你需要计算 $strength(S)$ 的值。
输入格式
第一行包含一个整数 $N$,表示顶点数量 ($2 \le N \le 250\,000$)。
接下来的 $N - 1$ 行,每行包含两个空格分隔的整数 $a$ 和 $b$,表示由边连接的顶点 ($1 \le a, b \le N$)。这些边构成了一棵树。
下一行包含一个整数 $Q$,表示查询数量 ($1 \le Q \le 100\,000$)。
接下来的 $Q$ 行,每行包含一个查询,由空格分隔的整数表示。查询以一个整数 $K$ 开头,表示集合的大小 ($1 \le K \le N$)。随后是 $K$ 个 $1$ 到 $N$ 之间互不相同的整数,表示集合 $S$ 中的顶点。
每个测试用例中 $K$ 的总和最多为 $1\,000\,000$。
输出格式
对于每次查询,输出一行,包含如上定义的整数 $strength(S)$。
样例
输入 1
7 1 2 1 3 1 5 2 7 4 6 4 7 6 1 1 2 1 2 4 1 2 3 4 5 1 2 4 6 7 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7
输出 1
0 1 3 10 7 21