from collections import deque def main(): n = int(input()) dist = [0] * (n + 1) dist[1] = 1 q = deque() q.append(1) while q: v = q.popleft() if v == n: exit(print(dist[v])) bc = v.bit_count() v1 = v + bc v2 = v - bc if v1 <= n and dist[v1] == 0: dist[v1] = dist[v] + 1 q.append(v1) if v2 >= 1 and dist[v2] == 0: dist[v2] = dist[v] + 1 q.append(v2) print(-1) if __name__ == "__main__": main()