AT_abc468_d [ABC468D] Pre-Palindrome
Description
以下の条件を満たす英小文字からなる文字列を**良い文字列**とします。
- $ 1 $ 文字以下を書き換えることで回文にすることができる。
例えば `a`、`iwai`、`abcdcza` などは良い文字列ですが、`abcd`、`atcoder` などは良い文字列ではありません。特に、回文も良い文字列であることに注意してください。
英小文字からなる文字列 $ S $ が与えられます。
$ S $ の空でない部分文字列(連続な部分列)であって良い文字列であるものの個数を求めてください。
$ 2 $ つの部分文字列は、 $ S $ から取り出す場所が異なれば文字列として等しくても区別して数えることに注意してください。
部分文字列とは $ S $ の**部分文字列**とは、 $ S $ の先頭から $ 0 $ 文字以上、末尾から $ 0 $ 文字以上削除して得られる文字列のことをいいます。
例えば、`ab` は `abc` の部分文字列ですが、`ac` は `abc` の部分文字列ではありません。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ S $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ S $ の $ 2 $ 文字目から $ 3 $ 文字目までの `ba` や $ 1 $ 文字目から $ 5 $ 文字目までの `ababa` などが良い文字列です。
良い文字列は部分文字列 $ 15 $ 通りのうち $ 1 $ 文字目から $ 4 $ 文字目までの `abab`、 $ 2 $ 文字目から $ 5 $ 文字目までの `baba` を除く $ 13 $ 通りです。
### Constraints
- $ S $ は英小文字からなる長さ $ 1 $ 以上 $ 10^4 $ 以下の文字列