만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

비밀번호 만들기

면접 대비

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

요약
A부터 Z까지 26개 글자로 길이가 M인 비밀번호를 만들 때, 이웃한 두 글자의 거리가 N 이상인 경우의 수를 1,000,000,007로 나눈 나머지로 구합니다.
난이도

보통10점 중 4점

유형
동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

혜민이는 자신만의 규칙으로 비밀번호를 만들고 싶다. A부터 Z까지 순서대로 11부터 2626까지 번호를 붙인다. 두 알파벳 사이의 거리는 두 알파벳 번호의 차이이다. 혜민이가 MM 자리의 비밀번호를 몇 개나 만들 수 있는지 알고 싶다. 비밀번호를 만드는 규칙은 다음과 같다.

  • 22 이상 MM 이하의 정수 ii에 대해, i−1i-1번째 알파벳과 ii번째 알파벳 사이의 거리가 NN 이상이어야 한다.
  • 알파벳은 대문자만 사용한다.
  • 알파벳은 중복으로 사용할 수 있다.

예를 들어, N=24N=24, M=4M=4인 경우, 첫 번째 알파벳이 A이면 AYAY, AYAZ, AZAY, AZAZ, AZBZ를 만들 수 있다. Z이면 ZAYA, ZAZA, ZAZB, ZBZA, ZBZB를, B이면 BZAY, BZAZ, BZBZ를, Y이면 YAYA, YAZA, YAZB를 만들 수 있다. 따라서 5+5+3+3=165+5+3+3=16개의 비밀번호를 만들 수 있다.

만들 수 있는 비밀번호의 개수를 1 000 000 0071\,000\,000\,007(109+710^9 + 7)로 나눈 나머지를 구하라.

입력

첫째 줄에 정수 NN(0≤N≤250 \leq N \leq 25)과 MM(2≤M≤1 0002 \leq M \leq 1\,000)이 공백으로 구분되어 주어진다.

출력

만들 수 있는 비밀번호의 개수를 1 000 000 0071\,000\,000\,007로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    24 4
    
    예상 출력
    16
    
  2. 예제 2

    입력
    17 6
    
    예상 출력
    124698