N = [int(i) for i in input().split()][0] count = 0 check = set([1]) reach = set() bitcount = lambda x : sum(int(i) for i in bin(x)[2:]) while N not in reach and len(check) > 0: left = (i + bitcount(i) for i in check if i + bitcount(i) <= N) right = (i - bitcount(i) for i in check if i - bitcount(i) >= 0) reach, check = reach | check | left | right, (left | right) - check count += 1 print(count if N in reach else -1)