Tree Country

Count the subsets of K vertices in a tree that form a connected subtree, modulo 1e9+7.

Medium6Dynamic programmingTreeDFSCombinatoricsNo attempts yetTime limit2sMemory limit512 MB

Problem

Tree Country has NN cities, numbered 1 to NN. Its road network forms a tree. That is, there are N1N-1 two-way roads and every city is connected, so you can always travel between any two cities.

KK employees of one company are moving to Tree Country. Every employee must live in a different city, so you have to pick KK cities. One condition applies: the cities where the employees live must be connected to one another. If two employees live in cities ii and jj, then every city on the path between ii and jj must also have an employee living in it.

Given the tree structure of Tree Country, write a program that counts the ways to pick the KK cities.

Input

The first line contains the number of cities NN and the number of employees KK, separated by a space. (2N502 \le N \le 50, 1KN1 \le K \le N)

Each of the next N1N-1 lines describes one road with the numbers uu and vv of the two cities it joins. (1u,vN1 \le u, v \le N, uvu \ne v) The N1N-1 roads form a tree.

Output

Print the number of ways to pick the KK cities, modulo 1,000,000,007.