N=int(input()) a=[0]*(N+1) a[1]=1 ne=[1] cnt=1 while(True): if N in ne:break tmp=[] for v in ne: d=bin(v).count("1") if v-d>0 and a[v-d]!=1: tmp.insert(0,v-d) a[v-d]=1 if v+d<=N and a[v+d]!=1: tmp.insert(0,v+d) a[v+d]=1 if len(tmp)==0: cnt=-1 break cnt+=1 ne=tmp print(cnt)