from collections import deque n = int(input()) ls = [-1] * n queue = deque([0]) ls[0] = 1 while len(queue) > 0: x = queue.popleft() i = ls[x] if x == n - 1: print(i) break d = bin(x + 1).count('1') if 0 <= x + d < n and ls[x + d] == -1: queue.append(x + d) ls[x + d] = i + 1 if 0 <= x - d < n and ls[x - d] == -1: queue.append(x - d) ls[x - d] = i + 1 else: print(-1)