#agc019b. [agc019_b]Reverse and Compare

[agc019_b]Reverse and Compare

問題文

英小文字からなる文字列 A=A1A2...AnA = A_1 A_2 ... A_n があります。

あなたは 1leqileqjleqn1 \\leq i \\leq j \\leq n であるような任意の二つの添字 i,ji, j を選び、AA のうち部分文字列 AiAi+1...AjA_i A_{i+1} ... A_j を反転することができます。

この操作は一回まで行うことができます。

これによって得られる文字列は何通りあるでしょうか?

制約

  • 1leqAleq200,0001 \\leq |A| \\leq 200,000
  • AA は英小文字からなる。

入力

入力は以下の形式で標準入力から与えられる。

AA

出力

AA のうち任意の部分文字列を一回まで反転することによって、何通りの文字列が得られるか出力せよ。


入力例 1

aatt

出力例 1

5

得られる文字列は aatt(何もしない)、atatA\[2..3\] を反転)、attaA\[2..4\] を反転)、ttaaA\[1..4\] を反転)、taatA\[1..3\] を反転)です。


入力例 2

xxxxxxxxxx

出力例 2

1

どの部分文字列を反転しても、結果は xxxxxxxxxx です。


入力例 3

abracadabra

出力例 3

44