트리나라
시간 제한2초메모리 제한512 MB
트리에서 K개의 정점을 골라 하나의 연결된 부분트리를 이루는 경우의 수를 1,000,000,007로 나눈 나머지를 구한다.
문제
트리나라는 도시 개로 이루어져 있고, 각 도시에는 1번부터 번까지 번호가 붙어 있다. 트리나라의 도로망은 트리를 이룬다. 즉 양방향 도로가 개 있고 모든 도시가 연결되어 있어서, 어느 두 도시 사이든 항상 오갈 수 있다.
한 회사의 직원 명이 트리나라로 이사한다. 직원은 모두 서로 다른 도시에 살아야 하므로 이사할 도시 개를 골라야 한다. 여기에 조건이 하나 붙는다. 직원이 사는 도시는 서로 연결되어 있어야 한다. 즉 두 직원이 사는 도시가 와 라면, 와 를 잇는 경로 위의 도시에도 직원이 살아야 한다.
트리나라의 트리 구조가 주어지면 이사할 도시 개를 고르는 방법의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 도시의 수 과 직원의 수 가 공백을 사이에 두고 주어진다. (, )
둘째 줄부터 개의 줄에 도로 정보가 한 줄에 하나씩 주어진다. 각 줄에는 그 도로가 잇는 두 도시의 번호 와 가 주어진다. (, ) 주어지는 도로 개는 트리를 이룬다.
출력
첫째 줄에 도시 개를 고르는 방법의 수를 1,000,000,007로 나눈 나머지를 출력한다.