from collections import deque n=int(input()) dp=[-1]*(n+1) dp[1]=1 q=deque() q.append(1) while q: i=q.popleft() dist=bin(i).count("1") for j in [i-dist,i+dist]: if 1<=j<=n and dp[j]==-1: dp[j]=dp[i]+1 q.append(j) print(dp[n])