n=int(input()) data={} for i in range(1,n+1): data[i]=-1 data[1]=1 def check(index,count=2): global data move=sum(map(int,bin(data[index])[2:])) if index-move>0: if data[index-move]>count or data[index-move]==-1: data[index-move]=count check(index-move,count+1) if index+move<=n: if data[index+move]>count or data[index+move]==-1: data[index+move]=count check(index+move,count+1) check(1) print(data[n])