{-# LANGUAGE PartialTypeSignatures #-}
module Main (main) where

import qualified Data.Vector as V
import qualified Data.Vector.Generic.Mutable as MV
import qualified Data.Vector.Algorithms.Merge as V
import qualified Data.ByteString.Char8 as C8
import qualified Data.Char as C
import qualified Data.List as L

main :: IO ()
main = do
  [n] <- readInts
  vec <- MV.replicateM n readString
  V.sort vec
  V.unsafeFreeze vec >>= output . solve

solve :: V.Vector String -> _
solve = V.length . V.uniq

output :: _ -> IO ()
output = print

-- utils
readInts :: IO [Int]
readInts = L.unfoldr (C8.readInt . C8.dropWhile C.isSpace) <$> C8.getLine

readString :: IO String
readString = C8.unpack <$> C8.getLine