def sugoroku(N): if N == 1: return 0 bit_1_list = [] for i in range(1, N + 1): s = bin(i) bit_1 = s.count('1') bit_1_list.append(bit_1) loc_list = [] loc = 0 while len(loc_list) <= N: if (loc < 0) or (loc == N - 1): loc_list.append(loc) break if loc > N - 1: loc = loc_list[-1] loc = loc - bit_1_list[loc] if loc in loc_list: loc_list.pop(-1) loc = loc_list[-1] loc = loc - bit_1_list[loc] elif loc not in loc_list: loc_list.append(loc) loc = loc + bit_1_list[loc] if loc < 0: return -1 elif loc == N - 1: return len(loc_list) if __name__ == '__main__': N = int(input()) print(sugoroku(N))