BaoBao 有一棵包含 $n$ 个顶点的树。初始时,树的所有边都是黑色的。BaoBao 喜欢在树上进行涂色和计数操作,他将执行 $(n - 1)$ 次涂色操作。对于第 $i$ 次操作,他会将第 $q_i$ 条边涂成红色。显然,在所有操作完成后,所有的边都会变成红色。
你的任务是计算在每次操作后,树中包含恰好 $k$ 条黑色边的简单路径有多少条。注意,我们认为从顶点 $u$ 到顶点 $v$ 的简单路径与从顶点 $v$ 到顶点 $u$ 的简单路径是同一条路径。
回想一下,简单路径是指不重复经过同一条边的路径。
输入格式
每个测试文件中仅包含一组测试数据。
输入的第一行包含两个整数 $n$ 和 $k$ ($2 \le n \le 2 \times 10^5$, $1 \le k \le 10$),分别表示树的顶点数和我们统计路径所需要的黑色边数量。
接下来的 $(n - 1)$ 行,第 $i$ 行包含两个整数 $u_i$ 和 $v_i$ ($1 \le u_i, v_i \le n$),表示树中的第 $i$ 条边连接顶点 $u_i$ 和 $v_i$。
接下来的 $(n - 1)$ 行,第 $i$ 行包含一个整数 $q'_i$ ($1 \le q'_i < n$),表示 BaoBao 涂色的第 $i$ 条边的编码索引。$q_i$ 的真实值等于 $((q'_i + a_{i-1}) \pmod{n - 1}) + 1$,其中 $a_{i-1}$ 是第 $(i - 1)$ 次查询的答案。特别地,我们定义 $a_0$ 为 BaoBao 涂色前树中包含恰好 $k$ 条黑色边的简单路径数量。通过这些编码后的查询,你必须在处理下一次查询之前计算出当前查询的答案。保证 $q_1, q_2, \dots, q_{n-1}$ 是 $1, 2, \dots, n - 1$ 的一个排列。
输出格式
输出 $(n - 1)$ 行,其中第 $i$ 行包含一个整数,表示第 $i$ 次操作后包含恰好 $k$ 条黑色边的简单路径数量。
样例
样例输入 1
6 1 4 6 4 2 4 3 5 6 1 2 4 2 1 2 3
样例输出 1
5 7 8 8 0
样例输入 2
6 2 4 6 4 2 4 3 5 6 1 2 2 5 5 4 3
样例输出 2
5 4 2 0 0
说明
对于第一个样例测试数据,真实值 $q_1, q_2, q_3, q_4, q_5$ 分别为 $5, 3, 4, 1, 2$。前两次操作后的树如下图左侧所示。黑色边用较细的线条表示,红色边用较粗的线条表示。
令 $u \to v$ 表示从顶点 $u$ 到顶点 $v$ 的简单路径。包含恰好一条黑色边的简单路径有:$1 \to 3, 1 \to 4, 2 \to 3, 2 \to 4, 3 \to 6, 4 \to 6, 5 \to 6$。
对于第二个样例测试数据,真实值 $q_1, q_2, q_3, q_4, q_5$ 分别为 $3, 1, 5, 2, 4$。前三次操作后的树如下图右侧所示。
包含恰好两条黑色边的简单路径有:$1 \to 5, 2 \to 5$。