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)