import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Main {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    while (scanner.hasNextInt()) {
        int count = scanner.nextInt();
        List<String> allNames = new ArrayList<>();
        while (count-- > 0) {
            allNames.add(scanner.next());
        }
        for (String name : allNames) {
            System.out.println(getNameValue(name));
        }
    }
}

private static int getNameValue(String name) {
    Map<String, List<String>> results = Arrays.stream(name.split("")).collect(Collectors.groupingBy(String::new));
    List<Integer> counts = new ArrayList<>();
    for (Map.Entry<String, List<String>>  item : results.entrySet()) {
        counts.add(item.getValue().size());
    } //统计每个字母出现的次数
    final List<Integer> finalCounts = counts.stream().sorted(Comparator.comparing(Integer::intValue).reversed()).collect(Collectors.toList()); //根据出现的次数倒序排序
    return IntStream.range(0, counts.size()).mapToObj(index -> (26 - index) * finalCounts.get(index)).reduce((a, b) -> a + b).get(); //计算权值
}

}