import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Data.Array.Unboxed
import Data.Bits
import Data.List
import qualified  Data.ByteString as B
import Data.Ord
import Data.Array.ST
-- import Data.Array.IO 
import Control.Monad.ST
import Data.List.Extra


bsToInt :: BS.ByteString -> Int
bsToInt = fst . fromJust . BS.readInt

bsToIntList :: BS.ByteString -> [Int]
bsToIntList = map bsToInt . BS.words

main :: IO ()
main = do
    n <- bsToInt <$> BS.getLine
    ss <- replicateM n BS.getLine
    let t1 = sort ss 
    --let t3 = listArray 
    let t2 = g t1 []
            where
            g [] acc = acc
            g (s:ss) acc 
                |elem s acc = g ss acc
                |otherwise  = g (dropWhile (==s) ss) (s:acc)
    
    print $ length t2