def main(): n = int(input()) mp = [len([d for d in bin(i)[2:] if d == '1']) for i in range(1, n+1)] targets = [n-1] count = 1 while len(targets) != 0 and 0 not in targets: tmp = [] for target in targets: tmp += movables(mp, target) targets = tmp count += 1 if len(targets) == 0: print(-1) else: print(count) def movables(mp, target): result = [] for i, p in enumerate(mp): if ((i + p == target) or (i - p == target)) and i != target: mp[i] = 0 result.append(i) return result if __name__ == "__main__": main()