P9986 [CodeChef] tree
提高-
题目描述

Let's define a good tree:

It is a tree with k * n nodes labeled from 0 to k * n - 1
Node i and node j are not adjacent, for all 0 <= i, j < k * n such that i div k = j div k (here div means integer division. E.g. 7 div 2 = 3)

Given n and k, how many different good trees are there?

Input
Two integers n(1 <= n <= 10^5), k(1<= k <=3)

Output
Output the number of different good trees. As the result may be very large, just output the remainder when divided by (10^9 + 7).

Example

Input 1:
2 2

Output 1:
4

Input 2:
1 2

Output 2:
0

Input 3:
4 1

Output 3:
16

输入格式

见题面

输出格式

见题面

样例输入
1 2
样例输出
0