def f(n, k): res = 0 for _ in range(k): res += n n //= 2 return res D = int(input()) ans = 1 << 60 for k in range(100): ok = 1 << 60 ng = 0 while ok - ng > 1: mid = (ok + ng) // 2 if f(mid, k) >= D: ok = mid else: ng = mid if f(ok, k) == D: ans = min(ans, ok) print(ans)