라면 배달하기

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

서울과학고의 기숙사는 $N$개의 방과 서로 다른 두 방을 연결하는 $N-1$개의 복도로 이루어진 트리 형태로 표현할 수 있다. 모든 복도는 양방향으로 이동할 수 있고, 복도를 이용해 모든 방 사이를 이동할 수 있다. 하나의 복도를 통과하는 데 걸리는 시간은 $1$이다.

민규는 $K$명의 친구에게 컵라면을 끓여주려고 한다. 현재 민규는 $1$번 방에 있으며, 민규를 포함한 모든 친구들은 서로 다른 방에 있다.

이를 위해 민규는 모든 친구들에게 뜨거운 물을 전달할 것이다. 뜨거운 물은 민규가 있는 $1$번 방의 정수기에서만 얻을 수 있다. 또한, 민규는 매우 큰 보온병을 가지고 있어 물을 한 번만 받아도 모든 친구에게 줄 수 있는 충분한 양의 물을 받을 수 있다.

라면을 끓이는 행동은 위험한 행동이다. 사감 선생님께 걸리면 벌점을 받을 수 있기 때문이다. 민규는 위험을 최대한 줄이기 위해 가장 마지막으로 뜨거운 물을 배달한 시각이 최대한 빠른 방법으로 $K$개의 방을 방문할 것이다.

민규가 $K$개의 방을 방문하는 방법을 더 자세히 설명하면 다음과 같다.

  • 민규는 물을 받기 전, $K$명의 친구들이 있는 방을 미리 확인한다.
  • 민규는 시각 $0$에 $1$번 방에서 물을 받고 출발해, 가장 마지막으로 뜨거운 물을 배달하는 친구에게 걸리는 시간을 최소화하는 방법으로 $K$개의 방을 방문할 것이다.
  • 시간을 계산할 때는 민규가 복도를 이동하는 시간만 고려한다. 친구에게 물을 주는 시간이나 정수기에서 물을 뜨는 시간 등은 무시한다. 민규가 물을 다 주고 자신의 방으로 돌아가는 시간 역시 무시한다.

민규는 친구들이 있는 방을 확인하기 전에, 친구들에게 물을 배달하는 데 시간이 얼마나 걸릴지 예측하려고 한다. $K$명의 친구들이 있는 방을 고르는 $\binom{N-1}{K}$가지 경우에 대해, 마지막으로 물을 배달하는 시각의 합을 구해 주자.

입력

첫째 줄에 방의 수 $N$과 친구의 수 $K$가 공백으로 구분되어 주어진다.

둘째 줄부터 $N$번째 줄까지 $i+1$번째 줄에는 $i$번 복도가 연결하는 두 방의 번호 $U_i$와 $V_i$가 공백으로 구분되어 주어진다.

출력

친구들이 있는 방을 고르는 $\binom{N-1}{K}$가지 경우에 대해 마지막으로 물을 배달하는 시각의 합을 $10^9 + 7$으로 나눈 나머지를 출력하여라.

제한

  • $2\le N\le 10^5$
  • $1\le K\le N-1$
  • $1\le U_i\le N$ $(1\le i<N)$
  • $1\le V_i\le N$ $(1\le i<N)$
  • $U_i\ne V_i$ $(1\le i<N)$
  • 입력으로 주어지는 서울과학고의 구조는 트리임이 보장된다.