어려운 계단 수

시간 제한0.5초메모리 제한512 MB

요약
길이 N인 B진법 수 중 인접한 자릿수의 차가 1이고 0부터 B-1까지 모든 숫자가 적어도 한 번 등장하는 수의 개수를 1e9로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산, 조합론, 수학
정답자
아직 제출이 없습니다

문제

45656이란 수를 보자.

이 수는 인접한 모든 자릿수의 차이가 1이 난다. 이런 수를 계단 수라고 한다.

오늘도 세준이는 0부터 B-1까지 모든 한 자리 숫자가 자릿수로 등장하면서 길이가 N인 B진법 계단 수가 몇 개 있는지 궁금해졌다.

N과 B가 주어질 때, 길이가 N이면서 0에서 B-1까지 모두 등장하는 B진법 계단 수가 총 몇 개인지 구하는 프로그램을 작성하시오. (0으로 시작하는 수는 없다.)

입력

첫째 줄에 자연수 N, B가 주어진다. (1 ≤ N ≤ 2,000, 2 ≤ B ≤ 2,000)

출력

첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    14 12
    
    예상 출력
    16
    
  2. 예제 2

    입력
    2000 1800
    
    예상 출력
    47168488
    
  3. 예제 3

    입력
    5 6
    
    예상 출력
    0