func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long N = 2e6 + 10;   const long long mod = 998244353;   double eps = 1e-10;   void in(long long &x) {     x = 0;     char c = getchar();     long long y = 1;     while (c <  0  || c >  9 ) {       if (c ==  - ) y = -1;       c = getchar();     }     while (c >=  0  && c <=  9 ) {       x = (x << 3) + (x << 1) + c -  0 ;       c = getchar();     }     x *= y;   }   void o(long long x) {     if (x < 0) {       x = -x;       putchar( - );     }     if (x > 9) o(x / 10);     putchar(x % 10 +  0 );   }   long long gcd(long long x, long long y) {     if (y == 0)       return x;     else       return gcd(y, x % y);   }   long long s, x;   long long cal(long long x) {     long long res = 0;     for (long long i = 0; i < 50; i++) {       if (x & ((long long)1 << i)) res++;     }     return res;   }   signed main() {     in(s);     in(x);     s -= x;     long long ans;     if (s & 1 || s < 0) {       ans = 0;     } else if ((s >> 1) & x) {       ans = 0;     } else if (x == 0 && s == 0) {       ans = 0;     } else {       ans = (long long)1 << cal(x);       ans -= 2 * (s == 0);     }     cout << ans << endl;     return 0;   }   