def bitCount(n): return bin(n).count("1") N = int(input()) Node = {"n":1,"count":1} List = [] Queue = [Node] while Queue != []: node = Queue.pop(0) List.append(node["n"]) n = node["n"] if n == N: print(node["count"]) exit() bit_count = bitCount(n) if n+bit_count <= N: if not(n + bit_count in List): Queue.append({"n":n+bit_count,"count":node["count"]+1}) if (n-bit_count) > 0: if not (n-bit_count in List): Queue.append({"n":n-bit_count,"count":node["count"]+1}) print(-1)