아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

비밀번호 만들기

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

요약
길이 M의 대문자 문자열 중 이웃한 글자의 알파벳 번호 차이가 N 이상인 것의 개수를 10^9+7로 나눈 나머지를 구한다.
난이도

보통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+35+5+3+3으로 총 1616개의 비밀번호를 만들 수 있다.

만들 수 있는 비밀번호의 개수를 1,000,000,007(= 109+7)1 \\, 000 \\, 000 \\, 007 \left(=\ 10^9 + 7 \right)로 나눈 나머지를 출력해 보자.

입력

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

출력

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

예제2

  1. 예제 1

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

    입력
    17 6
    
    예상 출력
    124698