module Main where

import           Control.Monad
import           Data.Maybe
import qualified Data.ByteString.Char8         as BS
import qualified Data.Vector                   as V
import qualified Data.Vector.Mutable           as VM
import qualified Data.Vector.Unboxed           as VU
import qualified Data.Vector.Unboxed.Mutable   as VUM

main :: IO ()
main = do
    n <- fst <$> (BS.getContents >>= justifyForce . BS.readInt)
    putStrLn $ show $ (n + 1) `div` 2

justifyForce :: Maybe a -> IO a
justifyForce (Just x) = pure x
justifyForce Nothing = fail "poyo"

split :: BS.ByteString -> [BS.ByteString]
split = filter (\s -> BS.length s > 0) . BS.splitWith isDelim

isDelim :: Char -> Bool
isDelim c = c == ' ' || c == '\n'
