#abc133e. [abc133_e]Virus Tree 2

[abc133_e]Virus Tree 2

問題文

NN 頂点、N1N-1 辺を持つ木が与えられます。 頂点には番号 1,2,...,N1,2,...,N がつけられており、ii 番目の辺は頂点 ai,bia_i,b_i をつないでいます。

あなたは KK 色の絵の具を持っています。 木の頂点それぞれに対して、以下の条件を満たすように、KK 色の中から 11 色を選んで塗ることにしました。

  • 二つの異なる頂点 x,yx,y 間の距離が 22 以下ならば、頂点 xx の色と頂点 yy の色は異なる。

木を塗り分ける方法は何通りあるでしょうか。 総数を 1,000,000,0071,000,000,007 で割った余りを求めてください。

木とは

木とはグラフの一種です。詳しくはこちらをご覧ください: Wikipedia「木 (数学)」

距離とは

二つの頂点 x,yx,y 間の距離とは、xx から yy に到達する際にたどる必要のある最小の辺数です。

制約

  • 1leqqN,Kleqq1051 \\leqq N,K \\leqq 10^5
  • 1leqqai,bileqqN1 \\leqq a_i,b_i \\leqq N
  • 与えられるグラフは木である。

入力

入力は以下の形式で標準入力から与えられます。

NN KK a1a_1 b1b_1 a2a_2 b2b_2 .. .. .. aN1a_{N-1} bN1b_{N-1}

出力

木の塗り分け方の総数を 1,000,000,0071,000,000,007 で割った余りを出力してください。


入力例 1

4 3
1 2
2 3
3 4

出力例 1

6

zu

塗り分け方は 66 通りです。


入力例 2

5 4
1 2
1 3
1 4
4 5

出力例 2

48

入力例 3

16 22
12 1
3 1
4 16
7 12
6 2
2 15
5 16
14 16
10 11
3 10
3 13
8 6
16 8
9 12
4 3

出力例 3

271414432