import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS

main = panaB

panaB = do
    [h,w] <- getIntList
    print $ solveB h w


readInt = fst . fromJust . BS.readInteger
readIntList = map readInt . BS.words
getIntList = readIntList <$> BS.getLine
getIntNList n = map readIntList <$> replicateM (fromIntegral n) BS.getLine

solveB :: Integer -> Integer -> Integer
solveB 1 _ = 1
solveB _ 1 = 1
solveB h w
    | odd h && odd w = 1 + fst (divMod s 2)
    | otherwise = fst $ divMod s 2
    where s = h * w