N = int(input()) X = [[] for i in range(N + 1)] for i in range(1, N + 1): x = sum([int(j) for j in bin(i)[2:]]) if x + i <= N: X[i] += [i + x] if i - x > 0: X[i] += [i - x] from collections import deque visited = [-1] * (N + 1) que = deque([1, 1]) visited[1] = 1 while que: q1, q2 = que.popleft(), que.popleft() for v in X[q2]: if visited[v] == -1: visited[v] = q1 + 1 que.extend([q1 + 1, v]) print(visited[-1])