#pragma GCC optimize("Ofast") #pragma GCC target("avx2") // mmap #include // write #include // exit #include #include // clang-format off #define RD(v) unsigned long long v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} // #define RD2(v) {int _c;int sign=1;if(*rp=='-'){sign=-1;rp++;}while(_c=*rp++-48,_c>=0)v=v*10+_c;v*=sign;} // // clang-format on int main() { // void *mmap(void * addr , size_t length , int prot , int flags , int fd , off_t offset ); char *rp = (char *)mmap(0l, 1l << 28, 1, 2, 0, 0ll); RD(x); for (unsigned long long 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; }