use std::cmp::{max, min};

fn main() {
    let mut rc = String::new();
    std::io::stdin().read_line(&mut rc).ok();
    let rc: Vec<usize> = rc.trim().split_whitespace().map(|s| s.parse().unwrap()).collect();
    let r = rc[0];
    let c = rc[1];

    if r == c {
        println!("{}", (r / 2 + r % 2) * (r / 2) + r % 2 - 1);
    } else {
        println!("{}", max(r, c) * min(r/2, c/2) + if min(r, c) % 2 == 1 { max(r, c) / 2 + max(r, c) % 2 } else { 0 } - 1);
    }
}