def main(): N = int(input()) route = [0] * (N + 1) route[1] = 1 queue = [] queue.append(1) answer = -1 while len(queue): node = queue.pop(0) if node == N: answer = route[node] break step = bin(node).count('1') prev = node - step next = node + step if 0 < next <= N and route[next] == 0: queue.append(next) route[next] = route[node] + 1 if 0 < prev <= N and route[prev] == 0: queue.append(prev) route[prev] = route[node] + 1 print(answer) if __name__ == '__main__': main()