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])