from collections import deque, defaultdict N = int(input()) bin_N = bin(N)[2:] dist = defaultdict(lambda:-1) dist[1] = 1 Q = deque() Q.append(1) while len(Q) > 0: x = Q.popleft() bin_x = bin(x) bin_count = bin_x.count('1') count_list = [x + bin_count,x - bin_count] for i in count_list: if (1<=i<=N): if dist[i]==-1: dist[i] = dist[x]+1 Q.append(i) else: continue print(dist[N])