하드코어 문자열 세기
시간 제한8초메모리 제한2048 MB
소문자 26개로 이루어진 길이 m의 문자열 중 s가 처음으로 끝에서 등장하는 경우의 수를 998244353으로 나눈 나머지로 구합니다.
문제
소문자 알파벳으로 이루어진 비어 있지 않은 문자열 가 주어진다. 소문자 알파벳으로 이루어진 문자열 가 다음 조건을 만족하면 좋은 문자열이라고 한다. 의 모든 진부분 접두사에는 가 부분 문자열로 나타나지 않지만, 자신에는 가 나타난다.
길이가 인 좋은 문자열의 개수를 구하라. 개수가 매우 클 수 있으므로, 소수 로 나눈 나머지를 구한다.
입력
첫째 줄에 두 정수 (의 길이)과 (세어야 할 문자열의 길이)이 주어진다 (, ). 둘째 줄에는 소문자 알파벳 개로 이루어진 문자열 가 주어진다.
출력
길이가 인 좋은 문자열의 개수를 으로 나눈 나머지를 한 줄에 출력한다. 값은 0 이상이다.