사전순 정렬이 일치하는 부분집합

A부터 B까지의 정수 중에서 값 순서와 십진 표기의 사전식 순서가 같은 공집합이 아닌 부분집합의 개수를 P로 나눈 나머지를 구한다.

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

문제

자연수로 이루어진 집합을 생각한다. 어떤 집합은 원소를 크기순으로 정렬한 결과와 십진법 표기를 사전순으로 정렬한 결과가 서로 같다. {2, 27, 3125, 9000}이 그런 집합이다. {2, 27, 243}은 그렇지 않다. 사전순으로 정렬하면 {2, 243, 27}이 되기 때문이다.

AA 이상 BB 이하인 정수를 모두 모은 집합에서 위 성질을 만족하는 부분집합이 몇 개인지 세는 프로그램을 작성한다. 공집합은 세지 않는다. 개수가 매우 커질 수 있으므로 입력으로 주어진 PP로 나눈 나머지를 출력한다.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합은 한 줄에 세 정수 AA, BB, PP가 공백으로 구분되어 주어진다. 1A1091 \le A \le 10^9, 0BA<1050 \le B - A < 10^5, 1P1091 \le P \le 10^9이다.

입력의 끝은 0 세 개만 적힌 줄로 나타낸다. 이 줄은 처리하지 않는다.

출력

각 데이터 집합마다 조건을 만족하는 부분집합의 개수를 PP로 나눈 나머지를 한 줄에 출력한다.