자릿수 합이 제한된 배수 세기

길이가 N인 숫자열 가운데 P로 나누어떨어지고 자릿수의 합이 M 이하인 것의 개수를, 각 M마다 998244353으로 나눈 나머지로 구한다.

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

문제

각 자리에 0부터 9까지의 숫자를 놓아 만든, 길이가 NN인 수를 생각한다. 맨 앞자리가 0이어도 된다.

이런 수 가운데 PP로 나누어떨어지고 자릿수의 합이 MM 이하인 것이 몇 개인지 센다. M=0M = 0부터 M=MmaxM = M_{\max}까지 각각의 개수를 998244353으로 나눈 나머지를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN, PP, MmaxM_{\max}가 공백으로 구분되어 주어진다. (1N1091 \le N \le 10^9, 1P501 \le P \le 50, 1Mmax5001 \le M_{\max} \le 500)

출력

첫째 줄에 정수 Mmax+1M_{\max} + 1개를 공백으로 구분해 출력한다. 앞에서부터 차례대로 M=0,1,,MmaxM = 0, 1, \ldots, M_{\max}일 때의 답이다.

힌트

N=2N = 2, P=3P = 3일 때 조건을 만족하는 수는 다음과 같다.

  • M=0M = 0: 00
  • M=1M = 1: 00
  • M=2M = 2: 00
  • M=3M = 3: 00, 03, 12, 21, 30

N=2N = 2, P=4P = 4일 때는 다음과 같다.

  • M=0M = 0: 00
  • M=1M = 1: 00
  • M=2M = 2: 00, 20
  • M=3M = 3: 00, 12, 20
  • M=4M = 4: 00, 04, 12, 20, 40