BOOM!道勋在参加 KAIST 组合学与算法夏令营时,在解决作为作业布置的树分解练习题时,脑子炸了。道勋的大脑现在无法集中精力于该问题,于是他开始消磨时间,在“树”上进行“分解”,而不是在一般图上进行树分解。
具体来说,道勋得到了一棵拥有 $N$ 个顶点的树。他计划将这棵树分解为若干个连通分量的集合,具体步骤如下:
- 道勋将从树中选择零条或多条边并将其删除。记 $S$ 为在此过程中删除的边集。
- 删除 $S$ 中的边后,所得图中的每个连通分量必须含有 $A$ 个或 $B$ 个顶点。
请帮助道勋求出满足上述条件的树分解方案数。具体来说,求出满足给定条件的可能边集 $S$ 的数量。
请注意,树是一个连通、无环的无向图,其中每条无向边是一个无序的顶点对。
输入格式
第一行包含三个空格分隔的整数 $N, A, B$。
接下来的 $N - 1$ 行中,第 $i$ 行包含两个空格分隔的整数 $x_i$ 和 $y_i$,表示树中的第 $i$ 条边连接顶点 $x_i$ 和 $y_i$。
输出格式
输出满足题目给定条件的可能边集 $S$ 的数量,模 $10^9 + 7$ 的结果。
数据范围
- $1 \le N \le 100\,000$
- $1 \le A < B \le 500$
- $1 \le x_i < y_i \le N$ ($1 \le i \le N - 1$)
- 保证给定的边构成一棵树。
样例
输入样例 1
6 1 2 1 2 2 3 2 4 4 5 4 6
输出样例 1
10