Problem:
Score : 300 points

Problem Statement

You drew lottery N times. In the i-th draw, you got an item of the kind represented by a string S_i.

How many kinds of items did you get?

Constraints

1 \leq N \leq 2\times 10^5

S_i consists of lowercase English letters and has a length between 1 and 10 (inclusive).

Input

Input is given from Standard Input in the following format:

N
S_1
:
S_N

Output

Print the number of kinds of items you got.

Sample Input 1

3
apple
orange
apple

Sample Output 1

2

You got two kinds of items: apple and orange.

Sample Input 2

5
grape
grape
grape
grape
grape

Sample Output 2

1

Sample Input 3

4
aaaa
a
aaa
aa

Sample Output 3

4

Solution in Java (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws FileNotFoundException {

//    	File file = new File("src/in.txt");

        //コード
//    	Scanner sc = new Scanner(file);
    	Scanner sc = new Scanner(System.in);

    	int N = sc.nextInt();


    	ArrayList<String> result = new ArrayList<>();
    	result.add(sc.next());
//    	for(int i=1;i<N;i++) {
//    		System.out.println(i);
//    		String next = sc.next();
//    		boolean chk = true;
//    		for(String j:result) {
//    			if(next.equals(j)) {
//    				chk = false;
//    				break;
//    			}
//    		}
//    		if(chk) {
//    			result.add(next);
//    			Collections.sort(result);
//    		}
//    	}
    	for(int i=1;i<N;i++) {
    		result.add(sc.next());
    	}
		Collections.sort(result);
		ArrayList<String> ans = new ArrayList<String>(new HashSet<>(result));
    	System.out.println(ans.size());
    }

}