from collections import deque n = int(input()) dist = [-1] * (n + 1) queue = deque() queue.append(1) dist[1] = 1 while queue: pos = queue.popleft() d = bin(pos).count("1") npos = pos + d if npos <= n and dist[npos] == -1: dist[npos] = dist[pos] + 1 queue.append(npos) npos = pos - d if npos > 0 and dist[npos] == -1: dist[npos] = dist[pos] + 1 queue.append(npos) print(dist[n])