50_B. Choosing Symbol Pairs_17205
There is a given string S consisting of N symbols. Your task is to find the number of ordered pairs of integers i and j such that

1. 1 ≤ i, j ≤ N

2. S[i] = S[j], that is the i-th symbol of string S is equal to the j-th.

Input

The single input line contains S, consisting of lowercase Latin letters and digits. It is guaranteed that string S in not empty and its length does not exceed 105.

Output

Print a single number which represents the number of pairs i and j with the needed property. Pairs (x, y) and (y, x) should be considered different, i.e. the ordered pairs count.

Examples

Input

great10


Output

7


Input

aaaaaaaaaa


Output

100
'''
Solução de Problemas Computacionais - 2017/01
Carolina Coimbra Vieira - 2014032941
PROBLEMA: Choosing Symbol Pairs (Codeforces_CF50B)

O problema consiste em ler uma string S de tamanho N e determinar a quantidade de pares (i,j) 
que podem ser formados de forma que 1 <= i, j <= N e S[i] = S[j]. Como os casos de teste são 
individuais, a cada chamada do main, um dicionário é criado e a string S é lida. Após isso, 
todos os caracteres da string são percorrido de forma que, caso algum deles esteja no dicionário, 
basta incrementar o valor em 1 e, caso contrário, basta criar essa chave e inicializar seu valor 
em 1. Após percorrer toda a string e completado o dicionário conforme descrito acima, basta 
elevar todos os valores do dicionário à potência de 2 e somar todos eles. Isso significa que, 
ao elevar a potência de 2, são gerados todos os pares com aquele caractere específico representado
pela chave do dicionário, uma vez que os pares devem ser formados pelo mesmo caractere, já que
uma das restrições do problema é que S[i] deve ser igual à S[j]. Uma informação importante é que 
como foi descrito na especificação, os pares (1,2) e (2,1) são diferentes, ou seja, a ordem importa, 
sendo assim, elevando à potência de 2, todos os pares são considerados. E, ao somar todos os valores 
resultantes significa que todos os pares formados por todos os caracteres serão considerados. 
Por fim, basta imprimir essa soma. 

Tags = dicionário, atualização de valores em dicionário, soma de valores do dicionário, strings

'''

def main ():
	dict = {}

	S = input();

	for i in range (len(S)):
		if (S[i] in dict):
			dict[S[i]] += 1
		else:
			dict[S[i]] = 1

	for key in dict:
		dict[key] *= dict[key]

	print (sum(dict.values()))

main ()
