#include<iostream> #include<string> #include<algorithm> #include<vector> #include<iomanip> #include<math.h> #include<complex> #include<queue> #include<deque> #include<stack> #include<map> #include<set> #include<bitset> #include<functional> #include<assert.h> #include<numeric> using namespace std; #define REP(i,m,n) for(int i=(int)(m) ; i < (int) (n) ; ++i ) #define rep(i,n) REP(i,0,n) using ll = long long; const int inf=1e9+7; const ll longinf=1LL<<60 ; const ll mod=1e9+7 ; int main(){ ll a,b; cin>>a>>b; ll ans = 1; rep(i,33){ if((1ll<<i)&a){ if((1ll<<i)&b)continue; else ans = 0; } else { if((1ll<<i)&b)ans *=2; } } cout<<(ans+1)/2<<endl; return 0; }