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)