from collections import deque def main(): N = int(input()) visited = [-1] * (N + 1) queue = deque() queue.append(1) visited[1] = 1 while queue: pos = queue.popleft() steps = visited[pos] num = bin(pos).count('1') if pos ==N: print(steps) return for i in (pos + num, pos - num): if 1 <= i <= N and visited[i] == -1: visited[i] = steps + 1 queue.append(i) print(-1) if __name__=='__main__': main()