#其实就是计算出各个字母出现的次数,出现次数最多的字母的“漂亮度”最大(26),后面按次数依次递减
while True:
    try:
        n=int(input())
        s=[]
        for i in range(n):
            s.append(input())
        res=[0]*n
        for i in range(n):
            temp=set(list(s[i]))
            d=[]
            for j in temp:
                d.append(s[i].count(j))#记录每个单词中每一个字母出现的次数
                d.sort(reverse=True)#对每个字母出现的次数从大到小排序
            for k in range(len(d)):
                res[i]=res[i]+d[k]*(26-k)
        for i in range(n):
            print(res[i])
    except:
        break

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        while(n--){
            string str;
            cin >> str;
            int i,temp[26]={0},k=26,res=0;
            for(i=0;i<str.length();i++){
                if(str[i]>='a' && str[i]<='z')
                    temp[str[i]-'a']++;
                else
                    temp[str[i]-'A']++;
            } 
            sort(temp,temp+26);
            for(i=25;i>=0;i--){
                res+=temp[i]*k--;
            }
            cout << res << endl;
        }
    }
    return 0;
}