import java.awt.*;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.*;

public class Main {
    public static void main(String[] args)throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    }
} import java.awt.*; awt.* java import java.io.DataInputStream; DataInputStream java.io import java.io.FileInputStream; FileInputStream java.io import java.io.IOException; IOException java.io import java.math.BigInteger; BigInteger java.math import java.util.*; util.* java public class Main {
    public static void main(String[] args)throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    }
} Main public static void main(String[] args)throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    } main {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc sc.nextLine() sc.nextLine sc ArrayList<String> arr=new ArrayList<>(); arr new ArrayList<>() for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        } {
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        } char[] c=sc.nextLine().toCharArray(); c sc.nextLine().toCharArray() sc.nextLine().toCharArray sc.nextLine() sc.nextLine sc Arrays.sort(c) Arrays.sort Arrays c StringBuilder sb=new StringBuilder(); sb new StringBuilder() for(int j=0;j<10;j++){
                sb.append(c[j]);
            } int j=0; int j=0; j 0 j<10 j 10 j++ j++ j {
                sb.append(c[j]);
            } {
                sb.append(c[j]);
            } sb.append(c[j]) sb.append sb c[j] c j arr.add(sb.toString()) arr.add arr sb.toString() sb.toString sb Collections.sort(arr) Collections.sort Collections arr long z=0; z 0 long temp=0; temp 0 for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        } int i=0; int i=0; i 0 i<arr.size()-1 i arr.size()-1 arr.size() arr.size arr 1 i++ i++ i {
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        } {
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        } if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            } arr.get(i).equals(arr.get(i+1)) arr.get(i).equals arr.get(i) arr.get arr i arr.get(i+1) arr.get arr i+1 i 1 {
                temp++;
            } temp++ temp {
                z=z+temp*(temp+1)/2;
                temp=0;
            } z=z+temp*(temp+1)/2 z z+temp*(temp+1)/2 z temp*(temp+1)/2 temp*(temp+1) temp (temp+1) temp 1 2 temp=0 temp 0 z=z+temp*(temp+1)/2 z z+temp*(temp+1)/2 z temp*(temp+1)/2 temp*(temp+1) temp (temp+1) temp 1 2 System.out.println(z) System.out.println System.out System System.out z String[] args args public class Main {
    public static void main(String[] args)throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    }
} public class Main {
    public static void main(String[] args)throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    }
} Main
import java.awt.*;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.*;

public class Main {
    public static void main(String[] args)throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        sc.nextLine();
        ArrayList<String> arr=new ArrayList<>();
        for(int i=0;i<n;i++){
            char[] c=sc.nextLine().toCharArray();
//            long x=1;
//            for(int j=0;j<10;j++){
//                x=x*s.charAt(j);
//            }
//            arr.add(x);
            Arrays.sort(c);
            StringBuilder sb=new StringBuilder();
            for(int j=0;j<10;j++){
                sb.append(c[j]);
            }
            arr.add(sb.toString());
        }
        Collections.sort(arr);
        long z=0;
        long temp=0;
        for(int i=0;i<arr.size()-1;i++){
            if(arr.get(i).equals(arr.get(i+1))){
                temp++;
            }
            else{
                z=z+temp*(temp+1)/2;
                temp=0;
            }
        }
        z=z+temp*(temp+1)/2;
        System.out.println(z);

    }
}