n = int(input()) l = [[] for _ in range(n)] for i in range(n): bl = bin((i+1)).count("1") a = (i+1) + bl b = (i+1) - bl if a <= n: l[i].append(a-1) if b >= 1: l[i].append(b-1) from collections import deque q = deque([[0,1]]) vis = [-1] * n vis[0] = 1 while q: node,cnt = q.popleft() # print(q,node,cnt) for nd in l[node]: if vis[nd] == -1: vis[nd] = cnt + 1 q.append([nd,cnt+1]) print(vis[-1])