import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Dictionary;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class Balloon {
    public static BufferedReader in;

    public static void main(String[] args) {
	    in = new BufferedReader(new InputStreamReader(System.in));
        int N;
        Set<String> bigDict = new HashSet<>();
        Set<Integer> smallDict;


        String line;
        try {
            while((line = in.readLine()) != null)
            {
                bigDict = new HashSet<>();

                N = Integer.parseInt(line);
                for (int i = 0; i < N; i++) {
                    line = in.readLine();
                    smallDict = new TreeSet<>();

                    for (char number : line.toCharArray())
                    {
                        smallDict.add(((int)(number))-48);
                    }

                    //sorted to string
                    String catName = smallDict.toString();


                    bigDict.add(catName);
                }
                System.out.println(bigDict.size());
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
