#include using namespace std; typedef long long ll; typedef pair pii; typedef pair pll; #define ep emplace_back #define pb push_back #define mp make_pair #define rep(i,n) for(int i=0;i<(n);++i) constexpr int mod=1000000007; constexpr int mod1=998244353; vector dx={0,1,0,-1},dy={-1,0,1,0}; bool inside(int y,int x,int h,int w){ if(y=0 && x=0) return true; return false; } int main(){ cin.tie(0); ios::sync_with_stdio(false); unsigned int a,b;cin >> a >> b; bitset<32> A(a), B(b); unsigned int ans = 1; bool flg = false; for(int i = 1; i <= 32; i++){ if(A[i]){ if(!B[i]){ ans = 0; } } else{ if(B[i]){ if(flg) ans *= 2; else flg = true; } } } cout << ans << endl; }