회문 동치

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

길이가 같은 두 단어 sstt가 있고, 그 길이를 nn이라 하자. 1ijn1 \le i \le j \le n을 만족하는 모든 위치 쌍 i,ji, j에 대하여, "ss에서 ii번째부터 jj번째까지의 부분 문자열이 회문"인 것과 "tt에서 같은 구간의 부분 문자열이 회문"인 것이 항상 함께 성립하거나 함께 성립하지 않으면, 두 단어 sstt회문 동치라고 부른다.

다시 말해, sstt는 위치를 기준으로 정확히 같은 회문 부분 문자열의 집합을 가진다.

단어 하나가 주어질 때, 그 단어와 회문 동치이면서 길이가 같고 소문자 알파벳 26자로 이루어진 단어의 개수를 구하여라. 그 개수가 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.

입력

소문자 알파벳으로 이루어진, 비어 있지 않은 단어가 한 줄에 주어진다. 단어의 길이는 10610^6을 넘지 않는다.

출력

주어진 단어와 회문 동치인 단어의 개수를 109+710^9 + 7로 나눈 나머지를 정수 하나로 출력한다.

힌트

단어 abba를 생각해 보자. 어떤 단어가 abba와 회문 동치가 되는 경우는 서로 다른 두 문자 xx, yy에 대해 xyyx 꼴일 때뿐이다. xx를 고르는 방법이 2626가지, 남은 yy를 고르는 방법이 2525가지이므로 이러한 단어는 모두 26×25=65026 \times 25 = 650개다.