#pragma GCC optimize("Ofast") #pragma GCC target("avx2") // mmap #include // write #include // exit #include #include int main() { unsigned long long x; (void)scanf("%lld", &x); for (int m = 0; m < 64; ++m) { unsigned long long n = x ^ m; if (n <= 0) continue; int m2 = __builtin_popcountll(n); if (m2 == m) { printf("%lld\n", n); return 0; } } printf("-1\n"); exit(0); return 0; }