#ifdef NACHIA #define _GLIBCXX_DEBUG #else // disable assert #define NDEBUG #endif #include #include #include #include using namespace std; using ll = long long; const ll INF = 1ll << 60; #define REP(i,n) for(ll i=0; i using V = vector; template void chmax(A& l, const B& r){ if(l < r) l = r; } template void chmin(A& l, const B& r){ if(r < l) l = r; } void testcase(){ ll N, M; cin >> N >> M; ll A = (1ll << 30) - 1, B = 0; REP(j,30){ ll a = N & (1ll << j); ll b = M & (1ll << j); if(j%2 == 0){ if(((0ll << j) & a) == b) A -= 1ll << j; if(((1ll << j) & a) == b) B += 1ll << j; } else { if(((0ll << j) | a) == b) A -= 1ll << j; if(((1ll << j) | a) == b) B += 1ll << j; } } if((B&A) == A){ cout << A << "\n"; } else cout << "-1\n"; } int main(){ cin.tie(0)->sync_with_stdio(0); testcase(); return 0; }