import Control.Applicative
import Control.Monad
import Data.ByteString.Char8 (ByteString)
import qualified Data.ByteString.Char8 as B
import Data.List
import Data.Char (isSpace)
import Data.Vector.Unboxed.Mutable (IOVector)
import qualified Data.Vector.Unboxed.Mutable as VM

main :: IO ()
main = do
  n <- readLn
  as <- f
  solve n as
  where
    f = map read <$> words <$> getLine

solve :: Int -> [Int] -> IO ()
solve n as = do
  v <- VM.replicate n 0 :: IO (IOVector Int)
  forM_ as $ \i -> do
    x <- VM.read v (i - 1)
    VM.write v (i - 1) (x + 1)
  forM_ [0 .. n-1] $ \i -> do
    x <- VM.read v i
    print x

readil :: Integral a =>  (ByteString -> Maybe (a, ByteString)) -> ByteString -> [a]
readil f = unfoldr $ \s -> do
  (n, s') <- f s
  return (n, B.dropWhile isSpace s')
