자릿수 합 반복 횟수

주어진 N, m, 진법 l마다 자릿수 합을 N번 반복해야 l보다 작아지는 가장 작은 양의 정수를 구해 m으로 나눈 나머지를 출력합니다.

어려움8정수론수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

양의 정수 aa에 대해, aall진법으로 적었을 때 각 자리 숫자의 합을 S(a)S(a)라고 하자. 또 Sk(a)l1S^k(a) \leq l-1을 만족하는 가장 작은 kkL(a)L(a)라고 하자. 여기서 S0(a)=aS^0(a) = a이고, k1k \geq 1에 대해 Sk(a)=S(Sk1(a))S^k(a) = S(S^{k-1}(a))이다.

NN이 주어지면 L(a)=NL(a) = N인 가장 작은 양의 정수 aa를 구하고, 그 값을 mm으로 나눈 나머지를 출력한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 정수 NN, mm, ll이 공백으로 구분되어 한 줄에 주어진다 (0N1050 \leq N \leq 10^5, 1m1091 \leq m \leq 10^9, 2l1092 \leq l \leq 10^9).

마지막 줄에는 0 0 0이 주어진다. 이 줄은 테스트 케이스가 아니다.

출력

각 테스트 케이스마다 Case x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 조건을 만족하는 가장 작은 aamm으로 나눈 나머지이다.