/* -*- coding: utf-8 -*- * * 3547.cc: No.3547 Rurumaru Function Problem - yukicoder */ #include #include using namespace std; /* constant */ const int BN = 30; /* typedef */ /* global variables */ /* subroutines */ /* main */ int main() { int n, m; scanf("%d%d", &n, &m); int x = 0; for (int i = 0; i < 30 && (n > 0 || m > 0); i++, n >>= 1, m >>= 1) { int bn = (n & 1), bm = (m & 1); if (! (i & 1)) { if (bn == 0 && bm == 1) { puts("-1"); return 0; } x |= (bm << i); } else { if (bn == 1 && bm == 0) { puts("-1"); return 0; } if (bn == 0) x |= (bm << i); } } printf("%d\n", x); return 0; }