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

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

문자열 조작의 달인

시간 제한2.5초메모리 제한1024 MB

요약
문자 하나를 다음 알파벳으로 바꾸는 연산을 정확히 M번 적용해 얻을 수 있는 서로 다른 문자열의 개수를 10^9+7로 나눈 나머지로 구한다. z는 그대로 둔다.
난이도

어려움10점 중 9점

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

문제

소문자 알파벳으로 이루어진 길이 NN의 문자열 SS가 있다. 문자열을 자유자재로 다루는 달인 Taro는 여기에 다음과 같은 조작을 MM번 가하려고 한다.

  • 위치 1≤i≤N1 \leq i \leq N을 하나 골라서, SiS_i를 알파벳 순서로 다음에 오는 문자로 바꾼다.
    • 단, 고른 문자가 z라면 조작을 가하더라도 z가 된다.

예를 들어 az라는 문자열이 존재한다고 했을 때, i=1i=1을 고르면 bz로 바뀌지만 i=2i=2를 고르면 문자열이 바뀌지 않는다.

이렇게 조작을 MM번 가했을 때 나올 수 있는 문자열의 개수를 구하자.

입력

다음과 같이 입력이 주어진다.

N MN\ M
SS

  • 1≤N≤3001 \leq N \leq 300, 0≤M≤10180 \leq M \leq 10^{18}
  • 입력으로 주어지는 문자열 SS는 알파벳 소문자만으로 이루어져 있다.

출력

주어진 문자열에 조작을 MM번 가했을 때 나올 수 있는 문자열의 개수를 109+710^9 + 7로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    2 2
    az
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2 2
    ay
    
    예상 출력
    3