from collections import deque def main(): N = int(input()) visited = [1]+[0]*(N-1) q = deque([1]) while q: node = q.popleft() if node == N: print(visited[node-1]) return add = bin(node).count("1") next_node = node+add if next_node <= N and visited[next_node-1] == 0: q.append(next_node) visited[next_node-1] = visited[node-1] + 1 next_node = node-add if next_node >= 1 and visited[next_node-1] == 0: q.append(next_node) visited[next_node-1] = visited[node-1] + 1 print(-1) main()