import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.nextLine());

        Map<String, Integer> map = new HashMap<>();

        for (int i = 0; i < n; i++) {
            String str = sc.nextLine();
            List<String> list = new ArrayList<>();
            for (Character c : str.toCharArray()) {
                list.add(c.toString());
            }
            Collections.sort(list);
            StringJoiner sj = new StringJoiner("");
            for (String s : list) {
                sj.add(s);
            }
            String key = sj.toString();

            if (map.containsKey(key)) {
                map.put(key, map.get(key)  + 1);
            } else {
                map.put(key, 1);
            }

        }
        sc.close();

        long count = 0;
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            int value = entry.getValue();
            if (value >= 2) {
                count += combi(value);
            }
        }
        System.out.print(count);
    }

    private static long combi(long n) {
        if (n <= 1) return 0;
        return n * (n - 1) / 2;
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz