main = do
  li <- getLine
  let [h,w] = map read $ words li
  let ans = compute h w
  print ans

{-
hかwが1しかなかったら動けない。そうでないときは、
1行目と2行目の行ける場所を合わせると1行ぜんぶ分になる。列が奇数でも同じ。
だから少なくともいずれかが偶数のときは、h*w/2でよい。
両方奇数のときは、最後は半分より大きい方になる。(+1して/2すれば偶数でも同じだが)
-}

compute :: Int -> Int -> Int
compute 1 _ = 1
compute _ 1 = 1
compute h w
  | even h = h `div` 2 * w
  | even w = w `div` 2 * h
  | True   = h `div` 2 * w + (succ w) `div` 2
