from collections import deque from copy import deepcopy def convert_bit(x): return bin(x).count("1") N = int(input()) q = deque([[1]]) while q != deque([]): root = q.popleft() last = root[-1] if last in root[:-2] or last > N: continue if last == N: print(len(root)) exit() move = convert_bit(last) if 0 < last - move: new_root = deepcopy(root) new_root.append(last - move) q.append(new_root) root.append(last + move) q.append(root) print(-1)