from collections import deque N = int(input()) G = [[] for _ in range(N+1)] for i in range(1, N+1): cnt = bin(i).count('1') if i+cnt <= N: G[i].append(i+cnt) if i-cnt > 0: G[i].append(i-cnt) dist = [-1]*(N+1) dist[1] = 1 que = deque([1]) while que: v = que.popleft() for nv in G[v]: if dist[nv] == -1: dist[nv] = dist[v] + 1 que.append(nv) print(dist[N])