Rainbow Trees

In graph theory, a tree is a connected, undirected simple graph with no cycles. A tree with $n$ nodes always has $n - 1$ edges.

A path in a tree is a sequence of distinct edges which are connected (each pair of consecutive edges in the path share a vertex).

Consider a tree with $n$ vertices and $n-1$ edges. You can color each edge in one of $k$ colors.

An assignment of colors to edges is a rainbow coloring if in every path of 2 or 3 edges, the colors of the edges are different. (i.e., every two consecutive edges have different colors, and every three consecutive edges have different colors).

Given a tree and the number of colors $k$, find the number of rainbow colorings modulo $1\, 000\, 000\, 009$.


The first line of input gives the number of test cases, $C$. Then for each of the $C$ cases, there will be:

  • One line containing two integers $n$ and $k$, where $n$ is the number of nodes in the tree, and $k$ is the number of colors available.

  • $n - 1$ lines, one for each edge, containing two integers $x, y$, indicating that the edge is between node $x$ and node $y$. Nodes are numbered from 1 to $n$.

You may assume that $1 \leq k \leq 1\, 000\, 000\, 000$ and all the node numbers are between 1 and $n$, inclusive. Furthermore, $2 \leq n \leq 500$.


For each test case, output one line. That line should contain "Case #$X$: $Y$", where $X$ is 1-based number of the case, and $Y$ is the answer for that test case.

Sample Input 1 Sample Output 1
4 10
1 2
1 3
1 4
5 3
1 2
2 3
3 4
4 5
Case #1: 720
Case #2: 6