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.
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 10<sup class="upper-index">5</sup>.
def fact(n):
    if n == 0 or n == 1:
        return 1
    return n * fact(n-1)

def num_of_pairs(d):

    tot = 0
    for k, v in d.items():
        if v == 1:
            tot += 1
        else:
            tot += (fact(v)/ (2 * fact(v-2))) * 2  + v
    
    return tot

if __name__ == '__main__':
    S = raw_input()
    count_dict = {}
    for c in S:
        if c in count_dict:
            count_dict[c] += 1
        else:
            count_dict[c] = 1
    print(num_of_pairs(count_dict))