import java.io.*;

public class Balloon {

	public static BufferedReader inp;
	public static void main(String[] args) throws IOException {
		inp = new BufferedReader (new InputStreamReader(System.in));
		String input, ret;
		String[] kategorie;
		int n = 0, poc_kat; 
		while ((input = inp.readLine()) != null){
			n = Integer.parseInt(input);
			poc_kat = n;
			kategorie = new String[n];
			for (int i = 0; i < n; i++) {
				kategorie[i] = inp.readLine();
			}
			for (int i = 0; i < n; i++) {
				for (int j = i+1; j < n; j++){
					if (rovnaka_kat(kategorie[i], kategorie[j])){
						poc_kat--;
						kategorie[j] = "";
					}
				}
			}
			
			System.out.println(poc_kat);
			
		}

	}
	
	static boolean rovnaka_kat(String s1, String s2){
		if (s2 == "") {
			return false;
		}
		
		int[] pole1 = new int[10];
		int[] pole2 = new int[10];
		for (int i = 0; i < 10; i++){
			pole1[i] = 0;
			pole2[i] = 0;
		}
		int index; 
		for(int i = 0; i < s1.length(); i++) {
			index = Integer.parseInt(s1.substring(i, i+1));
			if (pole1[index] == 0) {
				pole1[index]++;
			}
		}
		for(int i = 0; i < s2.length(); i++) {
			index = Integer.parseInt(s2.substring(i, i+1));
			if (pole2[index] == 0) {
				pole2[index]++;
			}
		}
		for(int i = 0; i < 10; i++) {
			if (pole1[i] != pole2[i]) {
				return false;
			}
		}
		return true;
	}

}
