def bitCount(n): return bin(n).count("1") N = int(input()) Node = {"n":1,"count":1,"List":[]} List = [] Queue = [Node] while Queue != []: node = Queue.pop(0) List.append(node["n"]) n = node["n"] if n == N: print(node["count"]) exit() if len(List) > N: List.pop() continue bit_count = bitCount(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)