#include #include #include #include #include #include #include #include #include #include #include #include #define vll vector #define vvvl vector #define vvl vector> #define VV(a, b, c, d) vector>(a, vector(b, c)) #define VVV(a, b, c, d) vector(a, vvl(b, vll (c, d))); #define re(c, b) for(ll c=0;c0){ if(b%2) ret *= num; num = num * num; b /= 2; } }else{ while(b>0){ if(b%2) ret = (ret*num)%p; num = (num*num)%p; b /= 2; } } return ret; } int main(int argc, char const *argv[]) { ll a, b;std::cin >> a >> b; if(a>b) err(); ll cnt = 0; for(int i=0;i<31;i++) { if(((a>>i)&1)==1&&((b>>i)&1)==0) err(); if(((a>>i)&1)==0&&((b>>i)&1)) cnt++;//どちらか } std::cout << mpow(2, cnt-1) << '\n'; }