from collections import deque

n=int(input())

que=deque([1])
dist=[-1]*(n+1)
dist[1]=1
while que:
    v=que.popleft()
    
    bit_count=bin(v).count("1")
    for nv in [v+bit_count,v-bit_count]:
        if 1<=nv<=n and dist[nv]==-1:
            dist[nv]=dist[v]+1
            que.append(nv)

print(dist[n])