#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long d; bool solve(long long x) { long long co = 0; while (x > 0) { co += x; x /= 2; if (co >= d) { return true; } } return false; } int main() { cin >> d; long long l = 1, r = 500000000000000100; while (r - l > 1) { long long m = (l + r) / 2; if (solve(m)) { r = m; } else { l = m; } } for (long long i = r - 100; i <= r + 100; i++) { long long co1 = 0; long long i1 = i; while (i1 > 0) { co1 += i1; if (co1 == d) { cout << i << endl; return 0; } i1 /= 2; } } }