import java.io.*;
import java.util.*;

public class Main {


    public static InputReader in = new InputReader( System.in );
    public static PrintWriter out = new PrintWriter( System.out );
    public static void main( String[] atgs ) {

        new Main().solve();
        out.close();
        System.exit(0);
    }


    private void solve() {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    }

    //Solution ends
    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        }

        public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        }

        public int nextInt() {
            return Integer.parseInt( next( ) );
        }

        public long nextLong() {
            return Long.parseLong( next( ) );
        }

        public double nextDouble() {
            return Double.parseDouble( next( ) );
        }

        public String nextLine() throws IOException {
            return reader.readLine( );
        }
    }


} import java.io.*; io.* java import java.util.*; util.* java public class Main {


    public static InputReader in = new InputReader( System.in );
    public static PrintWriter out = new PrintWriter( System.out );
    public static void main( String[] atgs ) {

        new Main().solve();
        out.close();
        System.exit(0);
    }


    private void solve() {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    }

    //Solution ends
    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        }

        public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        }

        public int nextInt() {
            return Integer.parseInt( next( ) );
        }

        public long nextLong() {
            return Long.parseLong( next( ) );
        }

        public double nextDouble() {
            return Double.parseDouble( next( ) );
        }

        public String nextLine() throws IOException {
            return reader.readLine( );
        }
    }


} Main public static InputReader in = new InputReader( System.in ); in new InputReader( System.in ) public static PrintWriter out = new PrintWriter( System.out ); out new PrintWriter( System.out ) public static void main( String[] atgs ) {

        new Main().solve();
        out.close();
        System.exit(0);
    } main {

        new Main().solve();
        out.close();
        System.exit(0);
    } new Main().solve() new Main().solve new Main() out.close() out.close out System.exit(0) System.exit System 0 String[] atgs atgs private void solve() {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    } solve {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    } int a = in.nextInt(); a in.nextInt() in.nextInt in HashSet<String> set = new HashSet<>(); set new HashSet<>() while(a-->0)
        {
            String str = in.next();
            set.add(str);
        } a-->0 a-- a 0 {
            String str = in.next();
            set.add(str);
        } String str = in.next(); str in.next() in.next in set.add(str) set.add set str System.out.print(set.size()) System.out.print System.out System System.out set.size() set.size set static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        }

        public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        }

        public int nextInt() {
            return Integer.parseInt( next( ) );
        }

        public long nextLong() {
            return Long.parseLong( next( ) );
        }

        public double nextDouble() {
            return Double.parseDouble( next( ) );
        }

        public String nextLine() throws IOException {
            return reader.readLine( );
        }
    } InputReader public BufferedReader reader; reader public StringTokenizer tokenizer; tokenizer public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        } InputReader {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        } reader = new BufferedReader( new InputStreamReader( stream ), 32768 ) reader new BufferedReader( new InputStreamReader( stream ), 32768 ) tokenizer = null tokenizer null InputStream stream stream public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        } next {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        } while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            } tokenizer == null || !tokenizer.hasMoreTokens( ) tokenizer == null tokenizer null !tokenizer.hasMoreTokens( ) tokenizer.hasMoreTokens( ) tokenizer.hasMoreTokens tokenizer {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            } try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                } IOException e {
                    throw new RuntimeException( e );
                } throw new RuntimeException( e ); new RuntimeException( e ) {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } tokenizer = new StringTokenizer( reader.readLine( ) ) tokenizer new StringTokenizer( reader.readLine( ) ) return tokenizer.nextToken( ); tokenizer.nextToken( ) tokenizer.nextToken tokenizer public int nextInt() {
            return Integer.parseInt( next( ) );
        } nextInt {
            return Integer.parseInt( next( ) );
        } return Integer.parseInt( next( ) ); Integer.parseInt( next( ) ) Integer.parseInt Integer next( ) next public long nextLong() {
            return Long.parseLong( next( ) );
        } nextLong {
            return Long.parseLong( next( ) );
        } return Long.parseLong( next( ) ); Long.parseLong( next( ) ) Long.parseLong Long next( ) next public double nextDouble() {
            return Double.parseDouble( next( ) );
        } nextDouble {
            return Double.parseDouble( next( ) );
        } return Double.parseDouble( next( ) ); Double.parseDouble( next( ) ) Double.parseDouble Double next( ) next public String nextLine() throws IOException {
            return reader.readLine( );
        } nextLine {
            return reader.readLine( );
        } return reader.readLine( ); reader.readLine( ) reader.readLine reader public class Main {


    public static InputReader in = new InputReader( System.in );
    public static PrintWriter out = new PrintWriter( System.out );
    public static void main( String[] atgs ) {

        new Main().solve();
        out.close();
        System.exit(0);
    }


    private void solve() {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    }

    //Solution ends
    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        }

        public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        }

        public int nextInt() {
            return Integer.parseInt( next( ) );
        }

        public long nextLong() {
            return Long.parseLong( next( ) );
        }

        public double nextDouble() {
            return Double.parseDouble( next( ) );
        }

        public String nextLine() throws IOException {
            return reader.readLine( );
        }
    }


} public class Main {


    public static InputReader in = new InputReader( System.in );
    public static PrintWriter out = new PrintWriter( System.out );
    public static void main( String[] atgs ) {

        new Main().solve();
        out.close();
        System.exit(0);
    }


    private void solve() {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    }

    //Solution ends
    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        }

        public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        }

        public int nextInt() {
            return Integer.parseInt( next( ) );
        }

        public long nextLong() {
            return Long.parseLong( next( ) );
        }

        public double nextDouble() {
            return Double.parseDouble( next( ) );
        }

        public String nextLine() throws IOException {
            return reader.readLine( );
        }
    }


} Main
import java.io.*;
import java.util.*;

public class Main {


    public static InputReader in = new InputReader( System.in );
    public static PrintWriter out = new PrintWriter( System.out );
    public static void main( String[] atgs ) {

        new Main().solve();
        out.close();
        System.exit(0);
    }


    private void solve() {
        int a = in.nextInt();
        HashSet<String> set = new HashSet<>();
        while(a-->0)
        {
            String str = in.next();
            set.add(str);
        }
        System.out.print(set.size());
    }

    //Solution ends
    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader( InputStream stream ) {
            reader = new BufferedReader( new InputStreamReader( stream ), 32768 );
            tokenizer = null;
        }

        public String next() {
            while ( tokenizer == null || !tokenizer.hasMoreTokens( ) ) {
                try {
                    tokenizer = new StringTokenizer( reader.readLine( ) );
                } catch ( IOException e ) {
                    throw new RuntimeException( e );
                }
            }
            return tokenizer.nextToken( );
        }

        public int nextInt() {
            return Integer.parseInt( next( ) );
        }

        public long nextLong() {
            return Long.parseLong( next( ) );
        }

        public double nextDouble() {
            return Double.parseDouble( next( ) );
        }

        public String nextLine() throws IOException {
            return reader.readLine( );
        }
    }


}