#include using namespace std; int main() { ios::sync_with_stdio(false); int A, B; cin >> A >> B; auto solve = [&]() { vector> dp(32, vector(2)); dp[0][0] = 1; for (int i = 0; i + 1 < 32; ++i) { int a = A >> 30 - i & 1; int b = B >> 30 - i & 1; if (a && !b) return 0; for (int l = 0; l < 2; ++l) { if (a == b) dp[i + 1][l] += dp[i][l]; if (!a && b) { if (l) { dp[i + 1][l] += 2 * dp[i][l]; } else { dp[i + 1][1] += dp[i][l]; } } } } return dp[31][0] + dp[31][1]; }; cout << solve() << endl; return 0; }