#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define chmax(x, y) x = max(x, y) #define chmin(x, y) x = min(x, y) typedef long long ll; typedef uint64_t ull; typedef pair P; typedef pair Pid; typedef pair Pdi; typedef pair Pl; typedef pair Pll; typedef pair> PP; typedef pair PPi; constexpr double PI = 3.1415926535897932; // acos(-1) constexpr double EPS = 1e-9; constexpr int INF = 1001001001; constexpr int mod = 1e+9 + 7; // constexpr int mod = 998244353; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int a, b; cin >> a >> b; vector pos; for(int i = 31; i >= 0; --i){ if(((a >> i) & 1) && !((b >> i) & 1)){ cout << 0 << endl; return 0; } if(!((a >> i) & 1) && ((b >> i) & 1)) pos.emplace_back(i); } vector pow2(32); pow2[0] = 1; for(int i = 1; i < 32; ++i) pow2[i] = pow2[i - 1] * 2; int sz = pos.size(); // cerr << bitset<32>(a) << "\n" << bitset<32>(b) << "\n"; // for(int i = 0; i < sz; ++i) cerr << pos[i] << " "; // cerr << "\n"; if(sz == 0) cout << 1 << endl; else cout << pow2[pos.size() - 1] << endl; }