0부터 MM까지의 각 자릿수 합 상한에 대해, P로 나누어떨어지는 길이 N의 숫자열 개수를 998244353으로 나눈 나머지로 구한다.
길이가 NNN인 정수 중에서 PPP로 나누어떨어지고 각 자리 숫자의 합이 MMM 이하인 것이 몇 개인지 세려고 한다. 맨 앞자리가 0이어도 되므로, 0부터 9까지의 숫자를 NNN개 나열한 것은 모두 길이가 NNN인 정수로 본다. 예를 들어 N=2N = 2N=2일 때 00과 03도 각각 하나로 센다.
M=0,1,…,MMM = 0, 1, \dots, MMM=0,1,…,MM 각각에 대해 조건을 만족하는 수의 개수를 998244353으로 나눈 나머지를 구하는 프로그램을 작성하시오.
첫째 줄에 NNN, PPP, MMMMMM이 공백으로 구분되어 주어진다. (1≤N≤1091 \le N \le 10^91≤N≤109, 1≤P≤161 \le P \le 161≤P≤16, 1≤MM≤150001 \le MM \le 150001≤MM≤15000)
첫째 줄에 정수 MM+1MM+1MM+1개를 공백 한 칸으로 구분해 출력한다. 앞에서부터 iii번째 정수(i=0,1,…,MMi = 0, 1, \dots, MMi=0,1,…,MM)는 M=iM = iM=i일 때의 정답, 즉 길이가 NNN인 정수 중에서 PPP로 나누어떨어지고 각 자리 숫자의 합이 iii 이하인 것의 개수를 998244353으로 나눈 나머지이다.
N=2N = 2N=2, P=3P = 3P=3인 경우 세는 수는 다음과 같다.
N=2N = 2N=2, P=4P = 4P=4인 경우는 다음과 같다.