// #pragma GCC optimize ("Ofast") // #pragma GCC optimize ("unroll-loops") // #pragma GCC target ("avx,avx2,fma") #include using std::cin, std::cout, std::cerr; using ll = long long; int main() { std::ios::sync_with_stdio(false); int n, m; cin >> n >> m; ll ans = n / 2 * 2 * ll(m); if(n % 2 == 1 && __builtin_popcount(m) >= 2) { auto log2 = [](int x) { return 31 - __builtin_clz(x); }; m -= 1 << log2(m); int i = log2(m); m -= 1 << i; ans += ((1 << i) - 1 - m) * 2; } cout << ans << '\n'; }