Curious Guardians

Oa is one of the most antique worlds of the DC universe, and it is the home of the guardians of the universe. They manage the Green Lantern troop, one of the major forces of the universe! Everyone knows that the Green Lanterns can fly because they have the power of the ring. However, not all inhabitants of Oa are part of the troop. For those inhabitants that do not fly it is difficult to move between cities, because there are no highways. The guardians want to connect the cities of Oa building highways. There are N cities in Oa, and they plan to build N − 1 two-way highways, so it is possible to go from any city to any other city, directly or indirectly. The guardians do not want to give more privileges to any city, so they have established that no city can have more than K highways. For example, if we have three cities and K equals 2, we have three options: The guardians, who are very curious, asked the Green Lanterns if they are capable of telling in how many ways the N − 1 highways can be built following these restrictions. Your task, as a member of the Green Lantern troop is, given N and K, answer the guardian’s question. Input The input consists of several test cases. A test case consists of one line containing two integers N (1 ≤ N ≤ 102) and K (1 ≤ K ≤ N). Output For each test case in the input your program must produce one single line with one single integer number, the answer to the problem. As the answer can be very big, output it modulo 109 + 7. Sample Input 32 41 43 Sample Output 3 0 16