import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc String[] s = new String[n]; s new String[n] n for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        } int i = 0; int i = 0; i 0 i < s.length i s.length s s.length i++ i++ i {
            s[i] = sc.next();
        } {
            s[i] = sc.next();
        } s[i] = sc.next() s[i] s i sc.next() sc.next sc Map<String, Integer> map = new HashMap<>(); map new HashMap<>() long result = 0; result 0 for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        } int i = 0; int i = 0; i 0 i < s.length i s.length s s.length i++ i++ i {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        } {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        } char[] c = s[i].toCharArray(); c s[i].toCharArray() s[i].toCharArray s[i] s i Arrays.sort(c) Arrays.sort Arrays c String str = new String(c); str new String(c) if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            } map.keySet().contains(str) map.keySet().contains map.keySet() map.keySet map str {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } result += map.get(str) result map.get(str) map.get map str map.put(str, map.get(str) + 1) map.put map str map.get(str) + 1 map.get(str) map.get map str 1 {
                map.put(str, 1);
            } map.put(str, 1) map.put map str 1 System.out.println(result) System.out.println System.out System System.out result sc.close() sc.close sc String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    }
} Main
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] s = new String[n];
        for (int i = 0; i < s.length; i++) {
            s[i] = sc.next();
        }
        Map<String, Integer> map = new HashMap<>();
        long result = 0;
        for (int i = 0; i < s.length; i++) {
            char[] c = s[i].toCharArray();
            Arrays.sort(c);
            String str = new String(c);
            if (map.keySet().contains(str)) {
                result += map.get(str);
                map.put(str, map.get(str) + 1);
            } else {
                map.put(str, 1);
            }
            
        }
        System.out.println(result);
        sc.close();
    }
}