Two positive integers a and b have a sum of s and a bitwise XOR of x. How many possible values are there for the ordered pair (a, b)?

Input

The first line of the input contains two integers s and x (2 ≤ s ≤ 1012, 0 ≤ x ≤ 1012), the sum and bitwise xor of the pair of positive integers, respectively.

Output

Print a single integer, the number of solutions to the given conditions. If no solutions exist, print 0.

Examples

Input

9 5


Output

4


Input

3 3


Output

2


Input

5 2


Output

0

Note

In the first sample, we have the following solutions: (2, 7), (3, 6), (6, 3), (7, 2).

In the second sample, the only solutions are (1, 2) and (2, 1).
#include <bits/stdc++.h>
using namespace std;
int main() {
  unsigned long long s, x;
  cin >> s >> x;
  int delta = 2 * (s == x);
  unsigned long long s1x1 = ((s & 1) << 1) | (x & 1);
  unsigned long long c0 = (s1x1 == 0) + 2 * (s1x1 == 3);
  unsigned long long c1 = s1x1 == 0;
  for (int k = 0; k < 60; k++) {
    x >>= 1;
    s >>= 1;
    unsigned long long sx = ((s & 1) << 1) | (x & 1);
    unsigned long long d0, d1;
    if (sx == 0) {
      d0 = d1 = c0;
    } else if (sx == 1) {
      d0 = 0;
      d1 = 2 * c1;
    } else if (sx == 2) {
      d0 = d1 = c1;
    } else {
      d0 = 2 * c0;
      d1 = 0;
    }
    c0 = d0;
    c1 = d1;
  }
  cout << c0 - delta;
}
