#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(x, s, t) for(llint (x) = (s); (x) <= (t); (x)++) #define chmin(x, y) (x) = min((x), (y)) #define chmax(x, y) (x) = max((x), (y)) #define all(x) (x).begin(),(x).end() #define inf 1e18 using namespace std; typedef long long llint; typedef pair P; llint d; llint check(llint x, llint p) { llint ret = 0; rep(i, 0, p){ ret += x; x /= 2; } return ret; } int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> d; llint ans = 2e18; rep(i, 0, 60){ llint ub = d, lb = 0, mid; while(ub-lb>1){ mid = (ub+lb)/2; if(check(mid, i) >= d) ub = mid; else lb = mid; } if(check(ub, i) == d) chmin(ans, ub); } cout << ans << endl; return 0; }