/* -*- coding: utf-8 -*- * * 1450.cc: No.1450 nahco314's First Problem - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int BN = 61; const long long MIN_N = 1; const long long MAX_N = 1000000000000000000LL; /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ inline int bnum(ll a) { int c = 0; for (; a > 0; a >>= 1) c += (a & 1); return c; } /* main */ int main() { ll x; scanf("%lld", &x); for (int m = 0; m < BN; m++) { ll n = x ^ m; if (bnum(n) == m && MIN_N <= n && n <= MAX_N) { printf("%lld\n", n); return 0; } } puts("-1"); return 0; }