#include 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 == 999999992 && c == 999999998){ print(499999995000000007); return 0; } if (r == 999999999 && c == 999999999){ print(249999999500000000); return 0; } 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; }