#include <bits/stdc++.h>

using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,a,b) for (int i = a; i < b; i++)
#define irep(i,a,b) for (int i = a; i > b; i--)
#define print(n) cout << n << endl
#define rup(a,b) (a+b-1)/b

using namespace std;

int main(){
    cout << fixed << setprecision(15);
    
    ull r,c;
    cin>>r>>c;
    if(r% 2 == 0 and c % 2 == 0){
        print(r*c/4-1);
        return 0;
    }
    if (r%2==0){
        print(c*(r/2)-1);
        return 0;
    }
    ll count = c*(r/2);
    if (c%2 == 0){
        count += c/2;
    }else{
        count += c/2 + 1;
    }
    print(count-1);
    
    //system("pause");
    return 0;
}