길이가 N인 문자열 S의 접미사 배열을 이렇게 정의한다. S의 i번째 접미사는 S의 i번째 문자부터 마지막 문자까지를 잘라낸 문자열이다. 접미사 N개를 사전순으로 정렬한 뒤 각 접미사의 시작 위치를 차례대로 적으면 1부터 N까지의 순열이 하나 나온다. 이 순열이 S의 접미사 배열이다. 길이가 서로 다른 두 접미사도 사전순 대소가 항상 정해지므로 접미사 배열은 문자열마다 하나로 정해진다.
문자는 순서가 정해진 알파벳에서 고른다. 알파벳은 M종류를 쓰기에 충분히 크다.
길이가 N이고 사용한 문자의 종류가 M가지 이하인 문자열을 모두 모아 각각의 접미사 배열을 구했을 때, 서로 다른 배열이 몇 개인지 구하라. 두 배열 A와 B가 서로 다르다는 것은 A[i]=B[i]인 정수 i가 적어도 하나 있다는 뜻이다.
첫째 줄에 두 자연수 N, M이 공백으로 구분되어 주어진다. (1≤N,M≤106)
조건을 만족하는 문자열의 접미사 배열 가운데 서로 다른 것의 개수를 109+7로 나눈 나머지를 한 줄에 출력한다.
N=4, M=2이면 서로 다른 접미사 배열이 12개다. 각 배열과 그 배열을 만드는 문자열의 예를 함께 적으면 다음과 같다.
aaabaabbabbbbaabbabbababbbabaabaabbababaabaaaaaa, baaa, bbaa, bbba, bbbb맨 아래 줄처럼 서로 다른 문자열이 같은 접미사 배열을 만들기도 한다. 이런 배열도 한 번만 센다.