암호

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

KOI 웹사이트의 암호는 영문 알파벳 대문자 N개로 이루어진다. 암호에는 알파벳 순서로 처음 K개의 문자만 쓸 수 있다. 예를 들어 K=5이면 A, B, C, D, E만으로 암호를 만든다. 같은 문자가 여러 번 나와도 되고, 한 번도 안 나와도 된다.

최근 연구로 두 문자열이 암호에 유난히 자주 나타난다는 사실이 밝혀졌다. 그 두 문자열은 ABCBC와 ABABC이다. 해커가 이 정보를 이용할 수 있으므로, 두 문자열 중 어느 쪽도 연속한 부분 문자열로 포함하지 않는 암호를 안전한 암호라고 부른다. 여기서 ABCBC와 ABABC는 알파벳 A, B, C를 그대로 이어 붙인 문자열이고, 다른 문자로 만든 같은 모양의 반복은 해당하지 않는다.

예를 들어 N=6, K=3일 때 두 문자열 중 하나를 포함하는 암호는 다음 12가지다.

  • ABCBCA, ABCBCB, ABCBCC, AABCBC
  • BABCBC, CABCBC, ABABCA, ABABCB
  • ABABCC, AABABC, BABABC, CABABC

만들 수 있는 암호는 모두 36=7293^6 = 729가지이므로 안전한 암호는 72912=717729 - 12 = 717가지다.

암호의 길이 N과 문자의 가지 수 K가 주어질 때, 안전한 암호의 개수를 구하는 프로그램을 작성하시오.

입력

첫 줄에 암호의 길이 N과 문자의 가지 수 K가 공백을 사이에 두고 주어진다. 5N1,000,0005 \le N \le 1{,}000{,}000, 3K263 \le K \le 26이다.

출력

안전한 암호의 개수를 1,000,000,009로 나눈 나머지를 한 줄에 출력한다. 계산 도중의 값이 32비트 정수 범위를 넘을 수 있으니 64비트 정수를 쓴다.