import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;

class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		BigDecimal ans = BigDecimal.ZERO;
		Map<String, Integer> list = new HashMap<>();
		for(int i = 0; i < num; i++){
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		}

		System.out.println(new DecimalFormat("0").format(ans));

	}
} import java.math.BigDecimal; BigDecimal java.math import java.text.DecimalFormat; DecimalFormat java.text import java.util.*; util.* java class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		BigDecimal ans = BigDecimal.ZERO;
		Map<String, Integer> list = new HashMap<>();
		for(int i = 0; i < num; i++){
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		}

		System.out.println(new DecimalFormat("0").format(ans));

	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		BigDecimal ans = BigDecimal.ZERO;
		Map<String, Integer> list = new HashMap<>();
		for(int i = 0; i < num; i++){
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		}

		System.out.println(new DecimalFormat("0").format(ans));

	} main {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		BigDecimal ans = BigDecimal.ZERO;
		Map<String, Integer> list = new HashMap<>();
		for(int i = 0; i < num; i++){
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		}

		System.out.println(new DecimalFormat("0").format(ans));

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int num = sc.nextInt(); num sc.nextInt() sc.nextInt sc BigDecimal ans = BigDecimal.ZERO; ans BigDecimal.ZERO BigDecimal BigDecimal.ZERO Map<String, Integer> list = new HashMap<>(); list new HashMap<>() for(int i = 0; i < num; i++){
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		} int i = 0; int i = 0; i 0 i < num i num i++ i++ i {
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		} {
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		} String str = sc.next(); str sc.next() sc.next sc char[] chars = str.toCharArray(); chars str.toCharArray() str.toCharArray str Arrays.sort(chars) Arrays.sort Arrays chars str = new String(chars) str new String(chars) try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			} catch(Exception e){
				list.put(str, 1);
			} Exception e {
				list.put(str, 1);
			} list.put(str, 1) list.put list str 1 {
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			} ans = ans.add(BigDecimal.valueOf(list.get(str))) ans ans.add(BigDecimal.valueOf(list.get(str))) ans.add ans BigDecimal.valueOf(list.get(str)) BigDecimal.valueOf BigDecimal list.get(str) list.get list str list.put(str, list.get(str)+1) list.put list str list.get(str)+1 list.get(str) list.get list str 1 System.out.println(new DecimalFormat("0").format(ans)) System.out.println System.out System System.out new DecimalFormat("0").format(ans) new DecimalFormat("0").format new DecimalFormat("0") ans String[] args args
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;

class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		BigDecimal ans = BigDecimal.ZERO;
		Map<String, Integer> list = new HashMap<>();
		for(int i = 0; i < num; i++){
			String str = sc.next();
			char[] chars = str.toCharArray();
			Arrays.sort(chars);
			str = new String(chars);
			try{
				ans = ans.add(BigDecimal.valueOf(list.get(str)));
				list.put(str, list.get(str)+1);
			}catch(Exception e){
				list.put(str, 1);
			}
		}

		System.out.println(new DecimalFormat("0").format(ans));

	}
}