#agc019b. [agc019_b]Reverse and Compare

[agc019_b]Reverse and Compare

Problem Statement

You have a string A=A1A2...AnA = A_1 A_2 ... A_n consisting of lowercase English letters.

You can choose any two indices ii and jj such that 1leqileqjleqn1 \\leq i \\leq j \\leq n and reverse substring AiAi+1...AjA_i A_{i+1} ... A_j.

You can perform this operation at most once.

How many different strings can you obtain?

Constraints

  • 1leqAleq200,0001 \\leq |A| \\leq 200,000
  • AA consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

AA

Output

Print the number of different strings you can obtain by reversing any substring in AA at most once.


Sample Input 1

aatt

Sample Output 1

5

You can obtain aatt (don't do anything), atat (reverse A\[2..3\]), atta (reverse A\[2..4\]), ttaa (reverse A\[1..4\]) and taat (reverse A\[1..3\]).


Sample Input 2

xxxxxxxxxx

Sample Output 2

1

Whatever substring you reverse, you'll always get xxxxxxxxxx.


Sample Input 3

abracadabra

Sample Output 3

44