#include <bits/stdc++.h>
using namespace std;
vector<long long> p, q;
long long c, wc;
void init() {
  long long i = 0;
  long long sum = p[i];
  if (q[i] == 1) {
    if (sum == 0) {
      c = 0;
      wc = 0;
    } else {
      wc = 2;
      c = 0;
    }
  } else {
    if (sum == 0) {
      wc = 1;
      c = 1;
    } else {
      c = 0;
      wc = 0;
    }
  }
}
int main() {
  long long s, x, t, j, k, sum, i;
  scanf("%lld %lld", &s, &x);
  if (x == 0) {
    if (s % 2 == 0) {
      printf("1\n");
    } else
      printf("0\n");
    return 0;
  }
  t = s;
  j = 0;
  while (j < 64) {
    p.push_back(t % 2);
    t /= 2;
    j++;
  }
  t = x;
  k = 0;
  while (k < 64) {
    q.push_back(t % 2);
    t /= 2;
    k++;
  }
  init();
  for (i = 1; i < k; i++) {
    sum = p[i];
    if (q[i] == 1) {
      if (sum == 0) {
        c = 2 * c;
        wc = 0;
      } else {
        wc = 2 * wc;
        c = 0;
      }
    } else {
      if (sum == 0) {
        wc = wc;
        c = wc;
      } else {
        c = c;
        wc = c;
      }
    }
  }
  if (s == x) wc -= 2;
  printf("%lld", wc);
  return 0;
}
