#ビットすごろく N = int(input()) root = list(0 for i in range(N+1)) root[1] = 1 stack = [1] while len(stack) > 0: s = stack.pop(0) a = s + s.bit_count() b = s - s.bit_count() #print(a , b) if a <= N and (root[a] == 0 or root[a] > root[s] + 1): root[a] = root[s] + 1 stack.append(a) if b == 0: #print(root , stack) continue elif root[b] == 0 or root[b] > root[s] + 1: root[b] = root[s] + 1 stack.append(b) #print(root , stack) if root[N] == 0: root[N] = -1 print(root[N])