func_code_string: #include <bits/stdc++.h>   using namespace std;   string scan();   const int mod = 1000000007;   const int MAXN = 10010;   int sta[MAXN], stb[MAXN];   long long s, x;   long long memo[MAXN][2];   long long bt(int i, int rem) {     if (i > 52 && rem == 0) return 1;     if (i == 60) return 0;     long long &ret = memo[i][rem];     if (ret != -1) return ret;     ret = 0;     if (sta[i] == 1 && ((rem + 1) % 2) == stb[i])       return ret = 2 * bt(i + 1, (rem + 1) / 2);     if (sta[i] == 1) return rem = 0;     if ((rem + 2) % 2 == stb[i]) ret += bt(i + 1, (rem + 2) / 2);     if (rem % 2 == stb[i]) ret += bt(i + 1, 0);     return ret;   }   int main() {     memset(memo, -1, sizeof memo);     long long a, b;     cin >> a >> b;     s = a, x = b;     for (int i = 0; a; a /= 2, i++) stb[i] = a % 2;     for (int i = 0; b; b /= 2, i++) sta[i] = b % 2;     cout << bt(0, 0) - (s == x ? 2 : 0) << endl;   }   