길이가 N인 숫자열 가운데 P로 나누어떨어지고 자릿수의 합이 M 이하인 것의 개수를, 각 M마다 998244353으로 나눈 나머지로 구한다.
각 자리에 0부터 9까지의 숫자를 놓아 만든, 길이가 NNN인 수를 생각한다. 맨 앞자리가 0이어도 된다.
이런 수 가운데 PPP로 나누어떨어지고 자릿수의 합이 MMM 이하인 것이 몇 개인지 센다. M=0M = 0M=0부터 M=MmaxM = M_{\max}M=Mmax까지 각각의 개수를 998244353으로 나눈 나머지를 구하는 프로그램을 작성하시오.
첫째 줄에 NNN, PPP, MmaxM_{\max}Mmax가 공백으로 구분되어 주어진다. (1≤N≤1091 \le N \le 10^91≤N≤109, 1≤P≤501 \le P \le 501≤P≤50, 1≤Mmax≤5001 \le M_{\max} \le 5001≤Mmax≤500)
첫째 줄에 정수 Mmax+1M_{\max} + 1Mmax+1개를 공백으로 구분해 출력한다. 앞에서부터 차례대로 M=0,1,…,MmaxM = 0, 1, \ldots, M_{\max}M=0,1,…,Mmax일 때의 답이다.
N=2N = 2N=2, P=3P = 3P=3일 때 조건을 만족하는 수는 다음과 같다.
N=2N = 2N=2, P=4P = 4P=4일 때는 다음과 같다.