#include <bits/stdc++.h>
using namespace std;
#define int long long
#define F first
#define S second

const int N = 2e5 + 100 ;

//int a[N] ;
int ans ;

signed main() {

    int a , b ;
    cin >> a >> b ;

    queue < pair < int , int > > q ;
    q.push(make_pair(a , b)) ;

    while ( !q.empty() ) {
        pair<int, int> p = q.front();
        q.pop();
        ans += p.F * p.S;
        if (p.F > 1 || p.S > 1)
        {
            pair < int , int > q1 ;
            pair < int , int > q2 ;
            if ( min(p.F , p.S) == 1 )
            {
                q1.F = 1 ;
                q1.S = max(p.S, p.F) / 2 ;
                q2.F = 1 ;
                q2.S = (max(p.S , p.F) + 1) / 2 ;
            }
            else if ( min(p.F , p.S) > 1 )
            {
                q1.F = min(p.F, p.S) / 2 ;
                q1.S = max(p.S, p.F) ;
                q2.F = (min(p.F , p.S) + 1) / 2 ;
                q2.S = max(p.F , p.S) ;
            }
            q.push( q1 ) ;
            q.push( q2 ) ;
        }
    }

    cout << ans ;

}