// yuki 939 and or // 2019.12.6 bal4u #include typedef long long ll; int i2bin(char *a, int n) { int w = 0; while (n) { *a++ = (n & 1), n >>= 1; ++w; } return w; } int main() { int i, a, b, sa, sb, s; ll ans; char A[35], B[35]; scanf("%d%d", &a, &b); if (a > b) { puts("0"); return 0; } sa = i2bin(A, a); sb = i2bin(B, b); s = sa; if (sb > s) s = sb; ans = 1; for (i = 0; i < s; ++i) { if (A[i] && B[i] == 0) { puts("0"); return 0; } if (A[i] == 0 && B[i]) ans <<= 1; } if (ans > 1) ans >>= 1; printf("%lld\n", ans); return 0; }