d = int(input()) def solve(mid, cnt): val = 0 for i in range(cnt): val += mid mid >>= 1 return val >= d, val ans = d for cnt in range(100): ok = d ng = 0 while abs(ok - ng) > 1: mid = (ok + ng) // 2 if solve(mid, cnt)[0]: ok = mid else: ng = mid if solve(ok, cnt)[1] == d: ans = min(ok, ans) print(ans)