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 (Python):
import sys
input = sys.stdin.readline

N = int(input())
Sss = [input().rstrip() for _ in range(N)]

print(len(set(Sss)))

Solution (Python):
n=int(input())
s=set()
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
N = int(input())
S = []
for _ in range(N):
    S.append(input())

print(len(set(S)))

Solution (Python):
import collections
N = int(input())
S = [input() for _ in range(N)]

c = collections.Counter(S)
print(len(c))

Solution (Python):
def ii():return int(input())
def iim():return map(int,input().split())
def iil():return list(map(int,input().split()))
def ism():return map(str,input().split())
def isl():return list(map(str,input().split()))

n = ii()
l = []
for i in range(n):
    l.append(input())

print(len(set(l)))

Solution (Python):
import sys

readline = sys.stdin.readline
MOD = 10 ** 9 + 7
INF = float('INF')
sys.setrecursionlimit(10 ** 5)


def main():
    n = int(input())

    s = [input() for _ in range(n)]

    ss = set(s)

    print(len(ss))


if __name__ == '__main__':
    main()

Solution (Python):

import bisect
import heapq
import math
import random
import sys
from collections import Counter, defaultdict, deque
from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal
from functools import lru_cache, reduce
from itertools import combinations, combinations_with_replacement, product, permutations
from operator import add, mul, sub


input = sys.stdin.buffer.readline
INF = 2**62-1

def read_int():
    return int(input())


def read_int_n():
    return list(map(int, input().split()))


def read_float():
    return float(input())


def read_float_n():
    return list(map(float, input().split()))


def read_str():
    return input().strip()


def read_str_n():
    return list(map(str, input().split()))


def error_print(*args):
    print(*args, file=sys.stderr)


def mt(f):
    import time

    def wrap(*args, **kwargs):
        s = time.time()
        ret = f(*args, **kwargs)
        e = time.time()

        error_print(e - s, 'sec')
        return ret

    return wrap


@mt
def slv(N, S):
    return len(set(S))


def main():
    N = read_int()
    S = [read_str() for _ in range(N)]
    print(slv(N, S))


if __name__ == '__main__':
    main()

Solution (Python):
N = int(input())
S = []
for i in range(N):
    s = input()
    S.append(s)

ans = len(set(S))
print(ans)

Solution (Python):
def main():

    from bisect import bisect_left as bl, bisect_right as br, insort
    import sys
    import heapq
    
    from collections import defaultdict as dd, deque
    def data(): return sys.stdin.readline().strip()
    def mdata(): return map(int, data().split())
    out = sys.stdout.write
    

    n=int(data())
    s=set()
    for i in range(n):
        s.add(data())
    print(len(s))




if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())
s = set(input() for i in range(n))

print(len(s))

Solution (Python):
n = int(input())
a = set()
for _ in range(n):
    a.add(input())
print(len(a))

Solution (Python):

import sys
input = sys.stdin.readline
from collections import Counter

n = int(input())
ss = []

for _ in range(n):
    ss.append(input().rstrip())

cnt = Counter(ss)
print(len(cnt))

Solution (Python):

import sys

sr = lambda: sys.stdin.readline().rstrip()
ir = lambda: int(sr())
lr = lambda: list(map(int, sr().split()))

N = ir()
S = [sr() for _ in range(N)]
se = set(S)
answer = len(se)
print(answer)

Solution (Python):
n = int(input())

l = []
for i in range(n):
    l.append(input())

print(len(set(l)))

Solution (Python):
n = int(input())
s = [input() for _ in range(n)]

print(len(list(set(s))))

Solution (Python):
N = int(input())
d = set()
for _ in range(N):
    d.add(input())
print(len(d))

Solution (Python):
import sys

sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1
p2D = lambda x: print(*x, sep="\n")
def II(): return int(sys.stdin.readline())
def MI(): return map(int, sys.stdin.readline().split())
def LI(): return list(map(int, sys.stdin.readline().split()))
def LLI(rows_number): return [LI() for _ in range(rows_number)]
def SI(): return sys.stdin.readline()[:-1]

def main():
    n=II()
    ss=set()
    for _ in range(n):
        s=SI()
        ss.add(s)
    print(len(ss))

main()

Solution (Python):
from collections import defaultdict
n = int(input())
dd = defaultdict(int)

for i in range(n):
    s=input()
    dd[s]+=1
print(len(dd))

Solution (Python):
n = int(input())
gifts = set()
for i in range(n):
    gifts.add(input())
print(len(gifts))

Solution (Python):


import sys
stdin = sys.stdin

def ns(): return stdin.readline().rstrip()
def ni(): return int(ns())
def na(): return list(map(int, stdin.readline().split()))

def main():
    n = ni()
    s = set()
    for _ in range(n):
        s.add(ns())
    print(len(s))

if __name__ == "__main__":
    main()

Solution (Python):
def Int():
    return int(input())
def Ints():
    return map(int,input().split())
def IntList():
    return list(Ints())
def IntMat(N):
    return [IntList() for i in range(N)]

N = Int()
D = {}
ans = 0
for i in range(N):
    s = input()
    if not s in D:
        ans += 1
        D[s] = 1
print(ans)

Solution (Python):
n = int(input())

ans = set()
for i in range(n):
    s = input()
    ans.add(s)

print(len(ans))

Solution (Python):
MOD = 10 ** 9 + 7
INF = 10 ** 10
import sys
sys.setrecursionlimit(100000000)
dy = (-1,0,1,0)
dx = (0,1,0,-1)

def main():
    n = int(input())
    S = {input() for _ in range(n)}
    print(len(S))
if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())

s = set()
for i in range(n):
  tmp = input()
  s.add(tmp)
  
print(len(s))

Solution (Python):
N = int(input())
S = [input() for _ in range(N)]
print(len(set(S)))

Solution (Python):
n = int(input())
l=[input() for i in range(n)]
print(len(set(l)))

Solution (Python):
from collections import Counter

N = int(input())
S = [0]*N
for i in range(N):
    S[i] = input()

print(len(Counter(S)))

Solution (Python):
from collections import defaultdict
n = int(input())
s = defaultdict(int)

for _ in range(n):
    s[input()] += 1

print(len(s.keys()))

Solution (Python):
N = int(input())
print(len(set(input() for _ in range(N))))

Solution (Python):
import sys
input = sys.stdin.readline

n = int(input())
a = set()
for _ in range(n):
    a.add(input().rstrip())
print(len(a))

Solution (Python):
from collections import Counter

n = int(input())
s = [input() for _ in range(n)]

c = Counter(s)

ans = len(c)
print(ans)

Solution (Python):
import sys

stdin = sys.stdin
inf = 1 << 60
mod = 1000000007

ni      = lambda: int(ns())
nin     = lambda y: [ni() for _ in range(y)]
na      = lambda: list(map(int, stdin.readline().split()))
nan     = lambda y: [na() for _ in range(y)]
nf      = lambda: float(ns())
nfn     = lambda y: [nf() for _ in range(y)]
nfa     = lambda: list(map(float, stdin.readline().split()))
nfan    = lambda y: [nfa() for _ in range(y)]
ns      = lambda: stdin.readline().rstrip()
nsn     = lambda y: [ns() for _ in range(y)]
ncl     = lambda y: [list(ns()) for _ in range(y)]
nas     = lambda: stdin.readline().split()

n = ni()
s = nsn(n)

print(len(set(s)))

Solution (Python):
n = int(input())

print(len(set(input() for _ in range(n))))

Solution (Python):
n = int(input())

a = [input() for i in range(n)]

print(len(list(set(a))))

Solution (Python):
from collections import *

N = int(input())
S = [input() for _ in range(N)]
s = set(S)

print(len(s))

Solution (Python):
import sys
import math
from collections import deque
import heapq
MAX_INT = int(10e10)
MIN_INT = -MAX_INT
mod = 1000000007
sys.setrecursionlimit(1000000)
def IL(): return list(map(int,input().split()))
def SL(): return input().split()
def I(): return int(sys.stdin.readline())
def S(): return input()

N = I()
a = [S() for i in range(N)]
print(len(set(a)))

Solution (Python):
n = int(input())
a = [input() for i in range(n)]
print(len(set(a)))

Solution (Python):


from collections import defaultdict

con = 10 ** 9 + 7

def getlist():
	return list(map(int, input().split()))


def main():
	D = defaultdict(int)
	N = int(input())
	for i in range(N):
		S = input()
		D[S] += 1

	ans = len(D)
	print(ans)
	
if __name__ == '__main__':
	main()

Solution (Python):
n = int(input())
s = set()
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
N = int(input())
s = set()
for i in range(N):
    S = input()
    s.add(S)
s = list(s)
print(len(s))

Solution (Python):
import sys
input = sys.stdin.readline

N = int(input())
A = set()
for _ in range(N):
    S = input().rstrip()
    A.add(S)
print(len(A))

Solution (Python):
import sys
input = lambda: sys.stdin.readline().rstrip()

n = int(input())
ans = set()
for i in range(n):
    s = str(input())
    ans.add(s)
print(len(ans))

Solution (Python):
def main():
    from collections import Counter
    import sys
    input = sys.stdin.readline

    N = int(input())
    s = [input().rstrip() for _ in range(N)]

    ctr = Counter(s)

    ans = len(ctr.keys())

    print(ans)


if __name__ == '__main__':
    main()

Solution (Python):
n=int(input())
ans=[]
for i in range(n):
    s=str(input())
    ans.append(s)
print(len(set(ans)))

Solution (Python):
N = int(input())
S = set()
for _ in range(N):
    S.add(input())
print(len(S))

Solution (Python):
N=int(input())
S=[input() for i in range(N)]
print(len(set(S)))

Solution (Python):
from collections import Counter

N = int(input())
lst = [input() for i in range(N)]
counter = Counter(lst)
print(len(counter))

Solution (Python):
n=int(input())
s=set()
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
N = int(input())
S = [input() for _ in range(N)]
print(len(set(S)))

Solution (Python):
N = int(input())
keihin = {input() for _ in range(N)}
print(len(keihin))

Solution (Python):
n = int(input())
s = set()
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
N = int(input())
S = {input() for _ in range(N)}
print(len(S))

Solution (Python):
n = int(input())
ans = set()
for _ in range(n):
  ans.add(input())
print(len(ans))

Solution (Python):
import sys
readline = sys.stdin.readline

def main():
    N = int(readline())
    S = [readline().rstrip() for _ in range(N)]
    print(len(set(S)))


if __name__ == '__main__':
    main()

Solution (Python):
from collections import Counter
N = int(input())
ct = Counter([input() for _ in range(N)])
print(len(ct))

Solution (Python):
import sys, math
from itertools import permutations, combinations
from collections import defaultdict, Counter, deque
from math import factorial, gcd
from bisect import bisect_left 
sys.setrecursionlimit(10**7)
enu = enumerate
MOD = 10**9+7
def input(): return sys.stdin.readline()[:-1]
def pri(x): print('\n'.join(map(str, x)))

N = int(input())
S = [input() for _ in range(N)]

s = set(S)
print(len(s))

Solution (Python):
n=int(input())
mono=set()
for i in range(n):
    mono.add(input())
print(len(mono))

Solution (Python):
n = int(input())
key = set()
for i in range(n):
  key.add(input())
print(len(key))

Solution (Python):
import math
import sys

stdin = sys.stdin

ns = lambda: stdin.readline().rstrip()
ni = lambda: int(stdin.readline().rstrip())
nm = lambda: map(int, stdin.readline().split())
nl = lambda: list(map(int, stdin.readline().split()))
mod = 10**9 + 7 
sys.setrecursionlimit(1000010)

N = ni()
good={}
ans = 0 
for i in range(N):
    x = ns()
    if x in good:
        good[x]=good[x]+1
    else:
        good[x] = 1 
        ans = ans + 1

print(ans)

Solution (Python):
n = int(input())
s = set()
for i in range(n):
    s.add(input().rstrip())
print(len(s))

Solution (Python):
def main():
    n = int(input())
    print(len(set([input() for _ in [0]*n])))


main()

Solution (Python):
N = int(input())
S = [(input()) for i in range(N)]

ans = 0
R = {}

for i in S:
  if i not in R:
    ans += 1
    R[i] = 1

print(ans)

Solution (Python):
N = int(input())
ans=set()
for _ in range(N):
    ans.add(input())
print(len(ans))

Solution (Python):
N = int(input())
s = set()
for i in range(N):
    c = input()
    s.add(c)
print(len(s))

Solution (Python):
n = int(input())
data = []
for i in range(n):
    data.append(input())
print(len(set(data)))

Solution (Python):

N = int(input())
A = []
for i in range(N):
    A.append(input())
print(len(set(A)))

Solution (Python):
import sys, re, os
from collections import deque, defaultdict, Counter
from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians, acos, atan, asin, log, log10, gcd
from itertools import permutations, combinations, product, accumulate
from operator import itemgetter, mul
from copy import deepcopy
from string import ascii_lowercase, ascii_uppercase, digits

def debug(*args):
    if debugmode:
        print(*args)
def input(): return sys.stdin.readline().strip()
def STR(): return input()
def INT(): return int(input())
def FLOAT(): return float(input())
def MAP(): return map(int, input().split())
def S_MAP(): return map(str, input().split())
def LIST(): return list(map(int, input().split()))
def S_LIST(): return list(map(str, input().split()))
def lcm(a, b): return a * b // gcd(a, b)
sys.setrecursionlimit(10 ** 9)
inf = sys.maxsize
mod = 10 ** 9 + 7
dx = [0, 1, 0, -1, 1, -1, -1, 1]
dy = [1, 0, -1, 0, 1, -1, 1, -1]
debugmode = True

n = INT()
s = [STR() for _ in range(n)]
print(len(set(s)))

Solution (Python):
n=int(input())
s = set()
for _ in range(n):
	x = input()
	s.add(x)
print(len(s))

Solution (Python):
import sys
stdin = sys.stdin
sys.setrecursionlimit(10**6)
ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
nn = lambda: list(stdin.readline().split())
ns = lambda: stdin.readline().rstrip()

n = ni()
a = set()

for i in range(n):
    a.add(ns())

print(len(a))

Solution (Python):
import sys
import math
import fractions
from collections import deque
from collections import defaultdict
sys.setrecursionlimit(10**7)

N = int(input())
s = set()
for _ in range(N):
    S = input()
    s.add(S)

print(len(s))

Solution (Python):
n = int(input())
s = set()
for i in range(n):
  ss = str(input())
  s.add(ss)
print(len(s))

Solution (Python):
n = int(input())
lst = set([])
for _ in range(n):
  lst.add(input())
print(len(lst))

Solution (Python):

import sys


def solve(N: int, S: "List[str]"):
    return len(set(S))



def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  
    S = [next(tokens) for _ in range(N)]  
    print(solve(N, S))

if __name__ == '__main__':
    main()

Solution (Python):
n=int(input())
print(len(set(input()for i in range(n))))

Solution (Python):
N = int(input())

List = []
for _ in range(N):
  List.append(input())

List2 = list(set(List))

print(len(List2))

Solution (Python):
print(len(set(input() for _ in range(int(input())))))

Solution (Python):
import sys
sys.setrecursionlimit(10**8)
def ii(): return int(sys.stdin.readline())
def mi(): return map(int, sys.stdin.readline().split())
def li(): return list(map(int, sys.stdin.readline().split()))
def li2(N): return [list(map(int, sys.stdin.readline().split())) for i in range(N)]
def dp2(ini, i, j): return [[ini]*i for i2 in range(j)]
def dp3(ini, i, j, k): return [[[ini]*i for i2 in range(j)] for i3 in range(k)]

from collections import defaultdict 


N = ii()
d = defaultdict(int)

for i in range(N):
    S = input()
    d[S] += 1

print(len(d.keys()))

Solution (Python):
N=int(input())
S=set()
for _ in range(N):
    S.add(input())
print(len(S))

Solution (Python):
N = int(input())
S = [input() for i in range(N)]
print(len(set(S)))

Solution (Python):
N = int(input())
S = {input() for _ in range(N)}
print(len(S))

Solution (Python):
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
sys.setrecursionlimit(10 ** 7)

n = int(readline())
s = [readline().rstrip().decode() for _ in range(n)]
print(len(set(s)))

Solution (Python):
def main():
    n = int(input())
    s = [input() for i in range(n)]
    print(len(set(s)))

if __name__ == '__main__':
    main()

Solution (Python):
import sys
sys.setrecursionlimit(10**9)
N = int(input())
s = set()
for n in range(N):
    st = input()
    s.add(st)

print(len(s))

Solution (Python):
n = int(input())
s = [input() for i in range(n)]

an = set()
for i in s:
    an.add(i)

print(len(an))

Solution (Python):

N = int(input())

dic = {}

for i in range(N):

    s = input()
    dic[s] = 1

print (len(dic))

Solution (Python):
n = int(input())
from collections import Counter

ss = []
for i in range(n):
    s = input()
    ss.append(s)
c = Counter(ss)
print(len(c))

Solution (Python):
import sys

stdin = sys.stdin

ns = lambda: stdin.readline().rstrip()
ni = lambda: int(stdin.readline().rstrip())
nm = lambda: map(int, stdin.readline().split())
nl = lambda: list(map(int, stdin.readline().split()))

n = ni()
l = [input() for _ in range(n)]
print(len(set(l)))

Solution (Python):

n = int(input())

items = set()

for _ in range(n):
    items.add(input())

print(len(items))

Solution (Python):
from collections import defaultdict
N=int(input())

answer_dic=defaultdict(int)
for i in range(N):
  answer_dic[input()]+=1
  
print(len(answer_dic))

Solution (Python):
N = int(input())
S = [input() for _ in range(N)]

print(len(set(S)))

Solution (Python):
A = set([])
N = int(input())
for _ in range(N):
    A.add(input())

print(len(A))

Solution (Python):
n = int(input())
l = []
for i in range(n):
    l.append(input())

print(len(set(l)))

Solution (Python):
N = int(input())
S = []
for _ in range(N):
    s = input()
    S.append(s)
print(len(set(S)))

Solution (Python):
N=int(input())
print(len(set([input() for i in range(N)])))

Solution (Python):
N = int(input())

S = []
for i in range(N):
    S.append(str(input()))

S.sort()

ans = 0
before = ""
for i in range(N):
    if S[i] != before:
        ans += 1
        before = S[i]

print(ans)

Solution (Python):
import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,copy,functools
from collections import deque

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7

DR = [1, -1, 0, 0]
DC = [0, 0, 1, -1]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def S(): return input()
     
def main():
    n = I()
    d = set()
    for i in range(n):
        s = S()
        d.add(s)
    print(len(list(d)))


main()

Solution (Python):
import sys,collections as cl,bisect as bs
sys.setrecursionlimit(100000)
input = sys.stdin.readline
mod = 10**9+7
Max = sys.maxsize
def l(): 
    return list(map(int,input().split()))
def m(): 
    return map(int,input().split())
def onem(): 
    return int(input())
def s(x): 
    a = []
    if len(x) == 0:
        return []
    aa = x[0]
    su = 1
    for i in range(len(x)-1):
        if aa != x[i+1]:
            a.append([aa,su])
            aa = x[i+1]
            su = 1
        else:
            su += 1
    a.append([aa,su])
    return a
def jo(x): 
    return " ".join(map(str,x))
def max2(x): 
    return max(map(max,x))
def In(x,a): 
    k = bs.bisect_left(a,x)
    if k != len(a) and a[k] ==  x:
        return True
    else:
        return False

def pow_k(x, n):
    ans = 1
    while n:
        if n % 2:
            ans *= x
        x *= x
        n >>= 1
    return ans

"""
def nibu(x,n,r):
    ll = 0
    rr = r
    while True:
        mid = (ll+rr)//2

    if rr == mid:
        return ll
    if (ここに評価入れる):
        rr = mid
    else:
        ll = mid+1
"""

n = onem()

po = set()

for i in range(n):
    x = input()[:-1]
    po.add(x)
print(len(po))

Solution (Python):
N = int(input())
s = set()
for i in range(N):
  item = input()
  s.add(item)

print(len(s))

Solution (Python):
import sys, bisect, math, itertools, string, queue, copy


from collections import Counter,defaultdict,deque
from itertools import permutations, combinations
from heapq import heappop, heappush
from fractions import gcd

sys.setrecursionlimit(10**8)
mod = 10**9+7
def inp(): return int(input())
def inpm(): return map(int,input().split())
def inpl(): return list(map(int, input().split()))
def inpls(): return list(input().split())
def inplm(n): return list(int(input()) for _ in range(n))
def inplL(n): return [list(input()) for _ in range(n)]
def inplT(n): return [tuple(input()) for _ in range(n)]
def inpll(n): return [list(map(int, input().split())) for _ in range(n)]
def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)])

def main():
    n = inp()
    dic = defaultdict(int)
    for _ in range(n):
        s = input()
        dic[s] = 1
    ans = 0
    for e in dic:
        ans += dic[e]
    print(ans)    
if __name__ == "__main__":
    main()

Solution (Python):
n = int(input())
c = set()
for _ in range(n):
    s = input()
    c.add(s)
print(len(c))

Solution (Python):

import sys


def solve(N: int, S: "List[str]"):
    s = set()
    for i in range(N):
        s.add(S[i])
    print(len(s))
    return



def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  
    S = [next(tokens) for _ in range(N)]  
    solve(N, S)

if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())
s = [input() for _ in range(n)]
s = set(s)
print(len(s))

Solution (Python):
N = int(input())
P = [input() for i in range(N)]
print(len(set(P)))

Solution (Python):
N = int(input())
print(len(set(input() for _ in range(N))))

Solution (Python):
n = int(input())
items = [input() for _ in range(n)]
print(len(set(items)))

Solution (Python):

import sys
sys.setrecursionlimit(10**9)
INF=10**18
MOD=10**9+7
input=lambda: sys.stdin.readline().rstrip()
YesNo=lambda b: bool([print('Yes')] if b else print('No'))
YESNO=lambda b: bool([print('YES')] if b else print('NO'))
int1=lambda x:int(x)-1

def main():
    N=int(input())
    S=[input() for i in range(N)]
    s=set(S)
    print(len(s))

if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())
s = set()
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
n=int(input())
a=[input() for _ in range(n)]
print(len(set(a)))

Solution (Python):

def inputlist(): return [int(k) for k in input().split()]


N = int(input())
li = [0]*N
for i in range(N):
    li[i] = input()

print(len(set(li)))

Solution (Python):
n = int(input())
s = [input() for _ in range(n)]

print(len(set(s)))

Solution (Python):
n = int(input())
cnt = {}
for i in range(n):
    s = input()
    if s not in cnt:cnt[s] = 1
    else:cnt[s] +=1
print(len(cnt))

Solution (Python):
def input_int():
    return int(input())

def input_ints():
    return list(map(int, input().split()))

N = input_int()
print(len(set(input() for _ in range(N))))

Solution (Python):
from collections import defaultdict
n=int(input())
d=defaultdict(int)
for i in range(n):
    s=input()
    d[s]+=1
print(len(d))

Solution (Python):

import sys, math, itertools, collections, bisect
input = lambda: sys.stdin.buffer.readline().rstrip().decode('utf-8')
inf = float('inf') ;mod = 10**9+7
mans = inf ;ans = 0 ;count = 0 ;pro = 1

n = int(input())
S = [input() for i in range(n)]
SS = set(S)
print(len(SS))

Solution (Python):

import sys
sys.setrecursionlimit(10**8)
INF = float("inf")


def solve(N: int, S: "List[str]"):
    print(len(set(S)))
    return


def main():

    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  
    S = [next(tokens) for _ in range(N)]  
    solve(N, S)


if __name__ == '__main__':
    main()

Solution (Python):
def main():
    n = int(input())
    s = [None] * n
    for i in range(n):
        s[i] = input()

    gained = set()
    for x in s:
        gained.add(x)

    print(len(gained))

if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())
s = [input() for i in range(n)]

set_ = set(s)
print(len(set_))

Solution (Python):
N = int(input())
d = {}
for i in range(N):
    d[input()] = 0
print(len(d))

Solution (Python):
n = int(input())
s = set()
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
n = int(input())
s = list()
for i in range(n):
    s.append(input())
print(len(set(s)))

Solution (Python):
N = int(input())
get = set()
for i in range(N):
    get.add(input())
print(len(get))

Solution (Python):

n = int(input())

B = [input() for i in range(n)]

print(len(set(B)))

Solution (Python):
import sys

sys.setrecursionlimit(10 ** 8)

input = sys.stdin.readline
import collections


def main():
    N = int(input())
    S = [input().strip() for _ in range(N)]
    c = collections.Counter(S)
    print(len(c))


    
    
    
    

if __name__ == '__main__':
    main()

Solution (Python):
import sys

def solve():
    input = sys.stdin.readline
    N = int(input())
    S = set()
    for _ in range(N):
        S |= {input().strip("\n")}
    print(len(S))

    return 0

if __name__ == "__main__":
    solve()

Solution (Python):
n = int(input())
S = [input() for _ in range(n)]
print(len(set(S)))

Solution (Python):
import sys, re
from collections import deque, defaultdict, Counter
from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians, gcd
from itertools import accumulate, permutations, combinations, product, groupby
from operator import itemgetter, mul
from copy import deepcopy
from string import ascii_lowercase, ascii_uppercase, digits
from bisect import bisect, bisect_left
from heapq import heappush, heappop
from functools import reduce
def input(): return sys.stdin.readline().strip()
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(): return list(map(int, input().split()))
def ZIP(n): return zip(*(MAP() for _ in range(n)))
sys.setrecursionlimit(10 ** 9)
INF = float('inf')
mod = 10 ** 9 + 7

N = INT()
S = [input() for _ in range(N)]

print(len(set(S)))

Solution (Python):
def main():
    N = int(input())
    A = {input() for i in range(N)}
    print(len(A))


if __name__ == '__main__':
    main()

Solution (Python):
N = int(input())
S = []
for i in range(N):
    S.append(input())

print(len(set(S)))

Solution (Python):
N, *S = open(0).read().split()
print(len(set(S)))

Solution (Python):
N = int(input())

S = []
for i in range(N):
    S.append(str(input()))

S.sort()

ans = 0
before = ""
for i in range(N):
    if S[i] != before:
        ans += 1
        before = S[i]

print(ans)

Solution (Python):
N=int(input())
S=set([input()for _ in range(N)])
print(len(S))

Solution (Python):
N = int(input())
k = []
for i in range(N):
    k.append(input())
l = set(k)
m = list(l)
print(len(m))

Solution (Python):
N = int(input())
get = [input() for _ in range(N)]
print(len(set(get)))

Solution (Python):


def main():
    n = int(input())
    se = set()
    for i in range(n):
        se.add(input())
    print(len(se))

if __name__ == "__main__":
    main()

Solution (Python):
n = int(input())
ans = len(set([input() for i in range(n)]))
print(ans)

Solution (Python):
def main():
    N = int(input())
    S = {}
    for _ in range(N):
        S[input()] = 1

    return len(S)

print(main())

Solution (Python):
N, = [int(x) for x in input().split()]
S = [input() for i in range(N)]
print(len(set(S)))

Solution (Python):
N = int(input())
print(len(set([input() for _ in range(N)])))

Solution (Python):
n = int(input())
ans = set()
for _ in range(n):
    s = input()
    ans.add(s)

print(len(ans))

Solution (Python):
n = int(input())
d = set()
for i in range(n):
    d.add(input())

print(len(d))

Solution (Python):
N = int(input())
print(len(set( [ input() for _ in range(N) ] )))

Solution (Python):
n=int(input())
s=set([])
for i in range(n):
    s.add(input())
print(len(s))

Solution (Python):
def main():
    n = int(input())
    s = [input() for _ in range(n)]
    print(len(set(s)))


if __name__ == '__main__':
    main()

Solution (Python):











import sys
sys.setrecursionlimit(10**6)
input=sys.stdin.readline
from math import floor,sqrt,factorial,hypot,log 
from heapq import heappop, heappush, heappushpop
from collections import Counter,defaultdict,deque
from itertools import accumulate,permutations,combinations,product,combinations_with_replacement
from bisect import bisect_left,bisect_right
from copy import deepcopy
from fractions import gcd
from random import randint
def ceil(a,b): return (a+b-1)//b
inf=float('inf')
mod = 10**9+7
def pprint(*A): 
    for a in A:     print(*a,sep='\n')
def INT_(n): return int(n)-1
def MI(): return map(int,input().split())
def MF(): return map(float, input().split())
def MI_(): return map(INT_,input().split())
def LI(): return list(MI())
def LI_(): return [int(x) - 1 for x in input().split()]
def LF(): return list(MF())
def LIN(n:int): return [I() for _ in range(n)]
def LLIN(n: int): return [LI() for _ in range(n)]
def LLIN_(n: int): return [LI_() for _ in range(n)]
def LLI(): return [list(map(int, l.split() )) for l in input()]
def I(): return int(input())
def F(): return float(input())
def ST(): return input().replace('\n', '')
def main():
    N=I()
    ans=set()
    for i in range(N):
        ans.add(ST())
    print(len(ans))
if __name__ == '__main__':
    main()

Solution (Python):
from collections import defaultdict
n=int(input())

ans=defaultdict(int)
for i in range(n):
    s=input()
    ans[s]+=1

print(len(ans.keys()))

Solution (Python):
import sys

sys.setrecursionlimit(10 ** 6)
INF = float("inf")
MOD = 10 ** 9 + 7


def input():
    return sys.stdin.readline().strip()


def main():
    N = int(input())
    S = set([input() for _ in range(N)])
    print(len(S))


if __name__ == "__main__":
    main()

Solution (Python):
n = int(input())
d = {}
for i in range(n):
  s = input()
  if s in d:
    d[s] += 1
  else:
    d[s] = 1
print(len(d))

Solution (Python):
N = int(input())
A = []
for i in range(N):
    A.append(input())
A = set(A)
print(len(A))

Solution (Python):
import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy

sys.setrecursionlimit(10**7)
inf=10**20
mod=10**9+7
dd=[(-1,0),(0,1),(1,0),(0,-1)]
ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def LS(): return sys.stdin.readline().split()
def S(): return input()

def main():
  n=I()
  l=[S() for _ in range(n)]
  return len(set(l))


print(main())