import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * Created by cteam016 on 10/22/16.
 */
public class Balloon {

    public static void main (String [] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String st;
        while((st = br.readLine()) != null){
            int n;
            n = Integer.parseInt(st);
            String a;
            Set <Character> [] set = new HashSet[n];
            boolean [] visited = new boolean [n];
            for (int k = 0; k < n; k++){
                a  = br.readLine();
                set [k] = new HashSet<Character>();
                for (int i = 0; i < a.length(); i++){
                    set[k].add(a.charAt(i));
                }
            }

            int [] nums = new int [n];
            int c;
            for (int k = 0; k < n; k++){
                Character[] ar = new Character[set[k].size()];
                set[k].toArray(ar);
                Arrays.sort(ar);
                String str = "";
                for (int i = 0; i < ar.length; i++){
                    str += ar[i].charValue();
                }

                //System.out.println(str);
                c = Integer.parseInt(str);
                nums[k] = c;

            }

            int comps = 0;
            for (int k = 0; k < n; k++){
                if (!visited[k]){
                    visited[k] = true;
                    for (int i = k; i < n; i++){
                        if (!visited[i]){
                            if (nums[k] == nums[i]){
                                visited[i] = true;
                            }
                        }
                    }
                    comps++;
                }
            }
            System.out.println(comps);
        }
    }
}
