#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef long double ld;

ld bin_pow(ld x, int k){
    if (k == 0) return 1;
    if (k == 1) return x;
    if (k % 2){
        return x * bin_pow(x, k - 1);
    } else {
        ld ans = bin_pow(x, k / 2);
        return ans * ans;
    }
}

int f(int a,int b){
    if(a==1 && b==1){
        return 1;
    }
    if(a>b){
        swap(a,b);
    }
    if(a%2==0){
        int x=f(a/2,b);
        return x+x+a*b;
    }
    if(b%2==0){
        int x=f(a,b/2);
        return x+x+a*b;
    }
    return f(a,b/2)+f(a,b/2+1)+a*b;
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout << fixed << setprecision(10);
    int a,b;
    cin>>a>>b;
    cout<<f(a,b);

}


/*
 3 3
 0.5
 2 6
 3 8
 4 10
 1 3 5

 5 6
 0.3333333
 1 27
 6 27
 3 27
 4 27
 5 27
 1 2 3 4 5 6

 1 1
 0
 1 1000000000
 1000000000

 */