나무 위 망대

트리에서 선택한 모든 꼭짓점이 다른 선택 꼭짓점과 인접하도록 K개의 꼭짓점을 고르는 경우의 수를 1000000007로 나눈 나머지를 구한다.

보통7트리동적 계획법조합론아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

망대는 나무에 매달아 놓은 높은 나무 발판이다. 사냥꾼은 망대에 올라가 사냥감을 살피거나 사냥한다.

이 지방 사냥꾼들은 망대 NN개를 좁고 곧은 길로 이어 놓았다. 숲을 덜 훼손하려고, 어느 두 망대 사이든 오갈 수 있게 하는 최소 개수의 길만 냈다. 두 망대는 길로 직접 이어져 있을 때만 서로 보인다.

사냥꾼 KK명으로 이루어진 무리는 날마다 서로 다른 망대 조합에 올라가 야생 동물을 관찰한다. 조건은 다음과 같다.

  • 안전 규정에 따라, 사람이 올라간 망대는 사람이 올라간 다른 망대에서 반드시 보여야 한다. 사고가 나면 옆 망대의 사냥꾼이 도우러 갈 수 있어야 하기 때문이다.
  • 망대 하나에 올라가는 사냥꾼은 많아야 한 명이다.
  • 누가 어느 망대에 있는지는 상관없다. 어느 망대가 쓰였는지만 구분한다.
  • 무리의 인원수는 바뀌지 않는다.

이 무리가 가능한 망대 조합을 모두 시험해 보려면 며칠이 걸리는지 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 입력의 끝까지 이어진다.

각 테스트 케이스의 첫 줄에 정수 NNKK가 공백으로 구분되어 주어진다 (2KN2002 \le K \le N \le 200). NN은 망대의 개수, KK는 무리의 인원수이다. 망대에는 11번부터 NN번까지 번호가 붙어 있다.

이어지는 N1N-1개의 줄에 길이 한 개씩 주어진다. 각 줄에는 그 길이 잇는 두 망대의 번호가 공백으로 구분되어 주어진다. 한 줄 안의 두 번호 순서와 길이 주어지는 순서는 정해져 있지 않다.

출력

각 테스트 케이스마다 무리가 망대에서 보내게 되는 날수를 한 줄에 하나씩 출력한다. 답은 10000000071000000007로 나눈 나머지로 출력한다.