#include using namespace std; #define rep(i,n) for (int i = 0; i < (int)(n); ++i) #define rrep(i,n) for (int i = (int)(n-1); i >= 0; --i) #define Rep(i,a,b) for (int i = a; i < b; ++i) #define rRep(i,a,b) for (int i = a; i > b; --i) #define fore(i,a) for(auto &i:a) #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define Bit(x,i) (((x)>>(i))&1) using ll = long long; using vi = vector; using vll = vector; using vvi = vector; using vvll = vector; using vb = vector; using vs = vector; using pii = pair; using pll = pair; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b 0 && c > 0) { ret += n; n /= 2; c--; } return ret-D; } int main() { cin >> D; ll ans = LINF; Rep(i, 1, 65) { ll ng = -1; ll ok = LINF; ll mid; while(abs(ok - ng) > 1) { mid = (ok + ng) / 2; ll ch = check(mid, i); if(ch == 0) { chmin(ans, mid); break; } else if(ch > 0) ok = mid; else ng = mid; } } cout << ans << endl; }