Problem: 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

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.Arrays;

public class B50 {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader inp = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Solver solver = new Solver();
        solver.solve(inp, out);
        out.close();
    }
    static class InputReader {
        InputStreamReader sReader;
        InputReader(InputStream stream) {
            sReader = new InputStreamReader(stream);
        }
        int nextC(){
            try {
                return sReader.read();
            } catch(IOException e){
                return -1;
            }
        }
    }

    static class Solver {
        private int[] occurrences = new int[123];
        PrintWriter out;

        private void solve(InputReader inp, PrintWriter out){
            this.out = out;
            int nchar = inp.nextC();
            while (nchar > 32){
                occurrences[nchar]++;
                nchar = inp.nextC();
            }
            summation();
        }
        private void summation(){
            long sum = Arrays.stream(occurrences).mapToLong(i -> i).map(i -> i*i).sum();
            out.println(sum);
        }

    }


}