#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
long long s, x, dp[100][2];
long long f(int u, int g) {
  if (u < 0) return !g;
  long long &ret = dp[u][g];
  if (ret != -1) return ret;
  int a = (s & (1LL << u)) != 0;
  int b = (x & (1LL << u)) != 0;
  ret = 0;
  if (a && !b) {
    ret += f(u - 1, 1);
  } else if (!a && b) {
    if (g) ret += f(u - 1, 1) * 2;
  } else if (!a && !b) {
    ret += f(u - 1, 0);
  } else if (!g)
    ret += f(u - 1, 0) * 2LL;
  return ret;
}
int main(void) {
  ios::sync_with_stdio(false);
  cin >> s >> x;
  memset(dp, -1, sizeof dp);
  long long ans = f(50, 0);
  if (s == x) ans -= 2;
  cout << ans << endl;
  return 0;
}
