import sys sys.setrecursionlimit(10 ** 6) int1 = lambda x: int(x) - 1 p2D = lambda x: print(*x, sep="\n") def MI(): return map(int, sys.stdin.readline().split()) def LI(): return list(map(int, sys.stdin.readline().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def main(): a, b = MI() dp = [[0] * 2 for _ in range(32)] dp[0][0] = 1 for i in range(31): ak = a >> (30 - i) & 1 bk = b >> (30 - i) & 1 if ak==1 and bk==0: print(0) exit() if ak==1 or bk==0: dp[i+1]=dp[i] continue dp[i+1][1]=dp[i][0]+dp[i][1]*2 #print(dp) print(sum(dp[31])) main()