//package atcoder;
 
import java.util.*;
 
public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	}
} import java.util.*; util.* java public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	} main {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc String A[] = new String[N]; A new String[N] N for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		} int i=0; int i=0; i 0 i<N i N i++ i++ i {
			A[i] = sc.next();
			//System.out.println(A[i]);
		} {
			A[i] = sc.next();
			//System.out.println(A[i]);
		} A[i] = sc.next() A[i] A i sc.next() sc.next sc HashMap<String,Integer>map = new HashMap<String,Integer>(); map new HashMap<String,Integer>() for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		} int i=0; int i=0; i 0 i<N i N i++ i++ i {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		} {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		} if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			} map.containsKey(A[i]) map.containsKey map A[i] A i {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			} map.put(A[i],map.get(A[i])+1) map.put map A[i] A i map.get(A[i])+1 map.get(A[i]) map.get map A[i] A i 1 {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			} map.put(A[i],1) map.put map A[i] A i 1 int ans = 0; ans 0 for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		} String key map.keySet() map.keySet map {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		} {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		} int temp = map.get(key); temp map.get(key) map.get map key ans ++ ans System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	}
} public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	}
} Main
//package atcoder;
 
import java.util.*;
 
public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String A[] = new String[N];
		
		for(int i=0;i<N;i++) {
			A[i] = sc.next();
			//System.out.println(A[i]);
		}
		
		HashMap<String,Integer>map = new HashMap<String,Integer>();
		for(int i=0;i<N;i++) {
			if(map.containsKey(A[i])) {
				map.put(A[i],map.get(A[i])+1);
				//System.out.println(map.get(A[i]));
			}else {
				map.put(A[i],1);
				//System.out.println(map.get(A[i]));
			}
		}
		int ans = 0;
		for(String key : map.keySet()) {
			int temp = map.get(key);
			//System.out.println(temp);
				ans ++;
				//System.out.println(ans);
		}
		System.out.println(ans);
	}
}
