import java.util.Arrays;
import java.util.Scanner;
/*
贪心算法:排序之后,重者先计算。
思路:
1.开一个整型数组,统计字母出现的次数,下标对应字母ASCII码
2.对字母出现次数排序
3.计算漂亮度
* */
public class Main {

    public static void main(String[] args) {
            //ASCLL码中a~z{97,122}转换{1~26}需要{97-96 ~  122-96}
            Scanner sc = new Scanner(System.in);
            Integer N = sc.nextInt();
            String[] str = new String[N];
            sc.nextLine();//消除sc.nextInt()抛弃的 已经输入的Enter键值带来的影响。
            for (int i = 0; i < N; i++) {
                str[i]=sc.nextLine();
                char[] charOne = str[i].toCharArray();
                System.out.println(countChar(charOne));
            }
        }
        //把字符出现次数进行统计
        public static Integer countChar(char[] charOne){
            //ASCLL码中a~z{97,122}转换{1~26}需要{97-96 ~  122-96}
            int s[] = new int[27];//1.开一个整型数组,统计字母出现的次数,下标对应 字母ASCII码-96
            for (int i = 0; i < charOne.length; i++) {
                s[charOne[i]-96] ++;
            }
            Arrays.sort(s);//2.对字母出现次数排序
            int p = 26,count = 0;//3.计算漂亮度
            for (int i = s.length-1; i >= 0; i--) {
                if(s[i]==0){//说明已经没有字母了。
                    break;
                }
                count +=s[i] * p;
                p--;
            }
            return count;
        }
}