import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import qualified Data.Vector.Unboxed as VU
import qualified Data.Map.Strict as M

main = abc163c

abc163c = do
    [n] <- getIntList
    as <- getIntList
    let m = genMap (VU.fromList (map fromIntegral as)) M.empty :: M.Map Int Int
    mapM_ (print . getValue m) [1 .. fromIntegral n]

genMap vu m
    | VU.length vu == 0 = m
    | otherwise = if M.member (VU.head vu) m
                  then genMap (VU.tail vu) (M.update (\x -> Just (x+1)) (VU.head vu) m)
                  else genMap (VU.tail vu) (M.insert (VU.head vu) 1 m)

getValue m k
    | M.member k m = m M.! k
    | otherwise = 0

readInt = fst . fromJust . BS.readInteger
readIntList = map readInt . BS.words
getIntList = readIntList <$> BS.getLine