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