# 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=1,M=0,N=0はWA # N>=1の制約なのでM=1~60が妥当 # あるいは判定に 0 <= n <= 2 * 10**18 X = int(input()) for M in range(1,61): n = X ^ M if n.bit_count() == M: print(n) exit() print(-1)