import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    }
} Main public static void main(String[] args) throws Exception {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    } main {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    } Scanner sn = new Scanner(System.in); sn new Scanner(System.in) int n = sn.nextInt(); n sn.nextInt() sn.nextInt sn List<String> s = new ArrayList<>(); s new ArrayList<>() int cnt = 0; cnt 0 Set<String> checkHash = new HashSet<String>(); checkHash new HashSet<String>() while (sn.hasNext()) {
            s.add(sn.nextLine());
        } sn.hasNext() sn.hasNext sn {
            s.add(sn.nextLine());
        } s.add(sn.nextLine()) s.add s sn.nextLine() sn.nextLine sn for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        } String str s {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        } {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        } if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			} checkHash.contains(str) checkHash.contains checkHash str {
				// 重複があればtrueをセットし終了
				cnt++;
			} cnt++ cnt {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			} checkHash.add(str) checkHash.add checkHash str System.out.print(n - cnt) System.out.print System.out System System.out n - cnt n cnt String[] args args public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sn = new Scanner(System.in);
        
        int n = sn.nextInt();
        List<String> s = new ArrayList<>();
        int cnt = 0;
		Set<String> checkHash = new HashSet<String>();
        
        while (sn.hasNext()) {
            s.add(sn.nextLine());
        }
        
        for(String str : s) {
            if(checkHash.contains(str)) {
				// 重複があればtrueをセットし終了
				cnt++;
			} else {
				// 重複しなければハッシュセットへ追加
				checkHash.add(str);
			}
        }
        System.out.print(n - cnt);
    }
}
