# N xor M = X -> N = X or M # Mは高々60(2**60>10**18)なので0~60で全探索 # N = X xor MのビットカウントがMとなるものがあるか判定する # 1WA N>=1の制約X=0,N=0はWA X = int(input()) for M in range(61): n = X ^ M if 1 <=n <= 10**18 and n.bit_count() == M: print(n) exit() print(-1)