#include using namespace std; typedef long long ll; signed main(){ int R, C; cin >> R >> C; if( not ( R >= C ) ) swap( R, C ); ll ans = 0; if( ( R & 1 ) and ( C & 1 ) ){ if( R == C ){ int st = R - 1; int ed = 2; ans = 1LL * ( st + ed ) * ( R / 2 ) / 2 + 1; } else{ int st = R - 2 + C - 2 + 2; int ed = ( R - C / 2 * 2 ) - 2 + 1 + 2; ans = 1LL * ( st + ed ) * ( C / 2 ) / 2 + ( R + 1 ) / 2; } } else if( not ( R & 1 ) and not ( C & 1 ) ){ if( R == C ){ int st = R - 1; int ed = 1; ans = 1LL * ( st + ed ) * ( R / 2 ) / 2; } else{ int st = R - 2 + C - 2 + 2; int ed = 0; ans = 1LL * ( st + ed ) * ( C / 2 ) / 2; } } else{ if( R & 1 ){ int st = R - 2 + C - 2 + 2; int ed = 0; ans = 1LL * ( st + ed ) * ( ( C / 2 ) + 1 ) / 2; } else{ int st = R - 2 + C - 2 + 2; int ed = R - C / 2 * 2 + 1 + 2; ans = 1LL * ( st + ed ) * max( 0, C / 2 - 1 ) / 2 + R / 2; } } cout << ans - 1 << endl; return 0; }