from collections import deque N = int(input()) dist = [-1] * (N + 1) dist[1] = 1 #スタート位置 dig = deque([1]) while dig: s = dig.popleft() if (s == N): break else: c = bin(s).count("1") i = s + c h = s - c if ((i <= N) and (dist[i] == -1)): dist[i] = dist[s] + 1 dig.append(i) else: pass if((h >= 1) and (dist[h] == -1)): dist[h] = dist[s] + 1 dig.append(h) else: pass print(dist[N])