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