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