import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;
public class Main {

	public static void main(String[] args) {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			}
		}


class FastScanner {

	BufferedReader br;

	StringTokenizer st;



	public FastScanner() {

		br = new BufferedReader(new InputStreamReader(System.in));

	}



	String next() {

		while (st == null || !st.hasMoreElements()) {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		}

		return st.nextToken();

	}



	int nextInt() {

		return Integer.parseInt(next());

	}



	long nextLong() {

		return Long.parseLong(next());

	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.HashSet; HashSet java.util import java.util.StringTokenizer; StringTokenizer java.util public class Main {

	public static void main(String[] args) {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			}
		} Main public static void main(String[] args) {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			} main {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			} FastScanner sc = new FastScanner(); sc new FastScanner() int Kuji = sc.nextInt(); Kuji sc.nextInt() sc.nextInt sc HashSet<String> hs = new HashSet<String>(); hs new HashSet<String>() for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			} int i = 1; int i = 1; i 1 i <= Kuji i Kuji i++ i++ i {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			} {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			} String syohin = sc.next(); syohin sc.next() sc.next sc hs.add(syohin) hs.add hs syohin System.out.println(hs.size()) System.out.println System.out System System.out hs.size() hs.size hs String[] args args class FastScanner {

	BufferedReader br;

	StringTokenizer st;



	public FastScanner() {

		br = new BufferedReader(new InputStreamReader(System.in));

	}



	String next() {

		while (st == null || !st.hasMoreElements()) {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		}

		return st.nextToken();

	}



	int nextInt() {

		return Integer.parseInt(next());

	}



	long nextLong() {

		return Long.parseLong(next());

	}

} FastScanner BufferedReader br; br StringTokenizer st; st public FastScanner() {

		br = new BufferedReader(new InputStreamReader(System.in));

	} FastScanner {

		br = new BufferedReader(new InputStreamReader(System.in));

	} br = new BufferedReader(new InputStreamReader(System.in)) br new BufferedReader(new InputStreamReader(System.in)) String next() {

		while (st == null || !st.hasMoreElements()) {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		}

		return st.nextToken();

	} next {

		while (st == null || !st.hasMoreElements()) {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		}

		return st.nextToken();

	} while (st == null || !st.hasMoreElements()) {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		} st == null || !st.hasMoreElements() st == null st null !st.hasMoreElements() st.hasMoreElements() st.hasMoreElements st {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		} try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			} catch (IOException e) {

				e.printStackTrace();

			} IOException e {

				e.printStackTrace();

			} e.printStackTrace() e.printStackTrace e {

				st = new StringTokenizer(br.readLine());

			} st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st int nextInt() {

		return Integer.parseInt(next());

	} nextInt {

		return Integer.parseInt(next());

	} return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next long nextLong() {

		return Long.parseLong(next());

	} nextLong {

		return Long.parseLong(next());

	} return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next public class Main {

	public static void main(String[] args) {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			}
		} public class Main {

	public static void main(String[] args) {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			}
		} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;
public class Main {

	public static void main(String[] args) {

				FastScanner sc = new FastScanner();

				int Kuji = sc.nextInt();
				//リスト定義
				//List<String> gift = new ArrayList<String>();
				HashSet<String> hs = new HashSet<String>();

				//kujiの個数回繰り返す。
			for(int i = 1; i <= Kuji; i++) {
				String syohin = sc.next();
				//リストの中にデータがなければ追加する
					hs.add(syohin);
			}
				//リストの数を出力する。
		System.out.println(hs.size());
			}
		}


class FastScanner {

	BufferedReader br;

	StringTokenizer st;



	public FastScanner() {

		br = new BufferedReader(new InputStreamReader(System.in));

	}



	String next() {

		while (st == null || !st.hasMoreElements()) {

			try {

				st = new StringTokenizer(br.readLine());

			} catch (IOException e) {

				e.printStackTrace();

			}

		}

		return st.nextToken();

	}



	int nextInt() {

		return Integer.parseInt(next());

	}



	long nextLong() {

		return Long.parseLong(next());

	}

}