from sys import stdin, stdout def Move(N): start, step = 2, 2 while step < N+1 and start != N: go = ('{0:b}'.format(start)).count('1') start = (start+go) if (start+go)<(N+1) else (start-go) step += 1 yield step if start == N else -1 def FindShortestPath(N): if N == 1: stdout.writelines('1\n'); return if N == 2: stdout.writelines('2\n'); return M = Move(N) res = -1 for i in range(3, N+1): res = next(M) if res > 0: break stdout.writelines('%d\n' % res) if __name__ == '__main__': N = int(stdin.readlines().replace('\n', '')) FindShortestPath(N)