题目描述

Y 同学有一棵 nn 个点的树。对于任意非空点集 XX,记 f(X)f(X) 为树上包含 XX 中所有点的最小连通子树的边数。现在给定正整数 kk,他想对所有非空点集分别计算 f(X)kf(X)^k,再把这些值相加。

单独枚举点集显然不可行。一个点集的最小连通子树可以看成它在原树上的虚树边集合,而幂次又会把边数统计变成高阶计数问题。你需要同时处理树形结构和组合系数。

请输出 Xf(X)k\sum_{X\ne\varnothing} f(X)^k109+710^9+7 取模后的值。

输入格式

第一行包含两个整数 n,kn,k

接下来 n1n-1 行,每行两个整数 u,vu,v,表示树上的一条边。

输出格式

输出一行一个整数,表示答案对 109+710^9+7 取模后的值。

样例

样例输入 #1

3 1
1 2
2 3

样例输出 #1

6

数据范围与约定

对于 100%100\% 的数据,保证 2n50002\le n\le50001k1201\le k\le120

测试点编号 分值 范围 特殊性质
141\sim4 1616 n12n\le12
585\sim8 n5000n\le5000k120k\le120 保证给出的树是一条链
9129\sim12 1818 保证给出的树是星形树
131613\sim16 2020 n800n\le800k40k\le40
172217\sim22 3030 n5000n\le5000k120k\le120

特殊性质 A:保证给出的树是一条链。 特殊性质 B:保证给出的树是星形树。