회 문화의 회문화

NYPC 2019 · 예선

창수는 회를 먹는 문화를 즐긴다. 창수가 자주 가는 곳에서는 회를 조리사가 주는 순서대로 먹는다고 한다. 회의 종류를 알파벳 소문자로 구분하자. 즉 "abcdab"와 같은 문자열이 회를 먹는 순서를 나타낸다.

창수는 회를 먹는 순서가 앞에서 뒤로 보는 것과 뒤에서 앞으로 보는 것이 같은 것을 좋아한다. 즉, 창수는 회를 먹는 순서를 나타내는 문자열이 회문이 되면 좋아한다.

어느 날 회를 먹으러 갔을때, 회를 주는 순서를 문자열로 받았다. 창수는 이 순서를 바꾸어 창수가 좋아하는 순서가 되는 방법이 몇가지나 있는지 궁금해졌다.

이 때 순서를 바꾸는 것은 받은 문자열의 제일 앞부분에 연속한 글자들을 그대로 제일 뒤쪽으로 옮겨붙이는 것이다. 아무 글자도 옮기지 않는 것도 방법에 포함된다. 하지만, 모든 글자를 다 옮기는 것은 방법으로 치지 않는다. 최종적으로 만들어지는 문자열이 동일하더라도 옮긴 글자의 개수가 다르면 다른 방법으로 센다.

받은 문자열에서 창수가 좋아하는 순서를 만들 수 있는 방법이 몇가지 있는지 확인하는 프로그램을 작성하라.

입력 형식

첫 번째 줄에 회를 주는 처음의 순서가 알파벳 소문자로 이루어진 문자열로 주어진다. 문자열의 최소 길이는 11, 최대 길이는 10000001\,000\,000 이다.

출력 형식

창수가 좋아하는 순서를 만드는 방법의 가지수를 정수로 출력한다.

예제

입력

baab

출력

2

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 9

문자열의 최대 길이가 50005\,000 이다.

종류 2: 91

별다른 제약조건 없음.

해설