#include using namespace std; map, long long>mp; long long rec(int n, int m) { if (n < 0 || m < 0) return 0; if (n == 1) return m - 1; if (m == 1) return n - 1; long long &ans = mp[{n, m}]; if (ans != 0) return ans; if (n >= m) { ans += 1 + rec(n / 2, m) + rec((n + 1) / 2, m); } else ans += 1 + rec(n, m / 2) + rec(n, (m + 1)/ 2); return ans; } int main() { int n , m; scanf("%d %d", &n, &m); printf("%lld", rec(n , m)); }