from collections import deque n = int(input()) dist = [-1] * (n + 1) dist[1] = 1 q = deque([1]) while q: u = q.popleft() p = bin(u).count("1") v = u + p if v <= n and dist[v] == -1: dist[v] = dist[u] + 1 q.append(v) v = u - p if v > 0 and dist[v] == -1: dist[v] = dist[u] + 1 q.append(v) print(dist[n])