각 자리가 서로 다른 덧셈식

밑 B에서 합이 N이 되며 각 자릿수의 더하는 수 숫자가 서로 다른 순서 없는 덧셈식 개수를 1000000007로 나눈 나머지를 구합니다.

어려움8동적 계획법조합론수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

모든 덧셈 항과 합을 오른쪽 끝에 맞춰 적은 덧셈식을 복면산 덧셈식이라고 하자. 다음이 그 예다.

124
 31
 25
---
180

덧셈 항은 앞에 0을 붙이지 않고 적은 양의 정수다. 각 열에서 그 열에 놓인 덧셈 항의 숫자는 모두 서로 달라야 한다. 합의 숫자는 이 조건에 넣지 않는다. 위 식의 첫째 열에는 1만 있고, 둘째 열에는 2, 3, 2가 있으며, 셋째 열에는 4, 1, 5가 있다. 둘째 열에 2가 두 번 나오므로 위 식은 복면산 덧셈식이 아니다. 마지막 덧셈 항을 15로 바꾸고 합을 170으로 바꾸면 복면산 덧셈식이 된다.

덧셈 항의 순서는 상관없다. 덧셈 항의 순서만 다른 두 식은 같은 식으로 센다.

밑이 10이 아닌 경우도 다룬다. 밑이 bb일 때 숫자 하나는 0부터 b1b-1까지의 정수다. 다음은 밑이 23인 복면산 덧셈식이다.

 I7B
 JJJ
----
1F47

여기서 I는 숫자 18, B는 11, J는 19, F는 15를 뜻한다. 10진법으로 적으면 두 덧셈 항은 18×232+7×23+11=969418 \times 23^2 + 7 \times 23 + 11 = 969419×232+19×23+19=1050719 \times 23^2 + 19 \times 23 + 19 = 10507이고, 합은 1×233+15×232+4×23+7=202011 \times 23^3 + 15 \times 23^2 + 4 \times 23 + 7 = 20201이다. 10 이상인 숫자를 문자로 적은 것은 이 예를 읽기 쉽게 하려는 표기일 뿐이고, 그런 숫자를 어떻게 적는지는 이 문제와 무관하다.

밑이 BB이고 합이 NN인 복면산 덧셈식은 몇 개인가? 개수가 매우 클 수 있으므로 10000000071000000007로 나눈 나머지를 구한다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개의 줄에 각각 두 양의 정수 NNBB가 주어진다. 입력의 모든 수는 10진법으로 주어진다.

제한

  • 1T201 \le T \le 20
  • 1N1001 \le N \le 100
  • 2B102 \le B \le 10

출력

각 테스트 케이스마다 한 줄에 Case #x: y를 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 밑이 BB이고 합이 NN인 복면산 덧셈식의 개수를 10000000071000000007로 나눈 나머지다. y는 10진법으로 출력한다.

힌트

밑이 10이고 합이 6인 복면산 덧셈식은 다음 네 개다.

6
-
6

1
5
-
6

2
4
-
6

1
2
3
-
6

밑이 4이고 합이 204=820_4 = 8인 복면산 덧셈식도 네 개다.

20
--
20

11
 3
--
20

13
 1
--
20

10
 3
 1
--
20