#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const int iINF = 2147483647 / 2; const long long int llINF = 9223372036854775807 / 2; const long long int MOD = 1e9 + 7; using namespace std; using ll = long long int; using vl = vector; using vvl = vector>; using vvvl = vector>>; typedef pair pll; bool paircomp(const pll &a, const pll &b) { if (a.first == b.first) return a.second < b.second; return a.first < b.first; } #define REP(i, n) for (ll i = 0; i < (n); i++) #define RREP(i, n) for (ll i = (n)-1; i >= 0; i--) #define FOR(i, a, b) for (ll i = (a); i < (b); i++) #define AUTO(i, m) for (auto &i : m) #define ALL(a) (a).begin(), (a).end() #define MAX(vec) *std::max_element(vec.begin(), vec.end()) #define MIN(vec) *std::min_element(vec.begin(), vec.end()) #define ARGMAX(vec) \ std::distance(vec.begin(), std::max_element(vec.begin(), vec.end())) #define ARGMIN(vec) \ std::distance(vec.begin(), std::min_element(vec.begin(), vec.end())) #define REV(T) greater() #define PQ(T) priority_queue, greater> #define VVL(a, b, c) vector>(a, vector(b, c)) #define VV(T, a, b, c) vector>(a, vector(b, c)) #define VVVL(a, b, c, d) \ vector>>(a, vector>(b, vector(c, d))) #define VVV(T, a, b, c, d) \ vector>>(a, vector>(b, vector(c, d))) #define SP(a) fixed << setprecision(a) #define SQRT(a) sqrt((long double)(a)) #define DPOW(a, b) pow((long double)(a), (long double)(b)) #define UNIQUE(vec) \ do { \ sort(ALL((vec))); \ (vec).erase(std::unique(ALL((vec))), (vec).end()); \ } while (0) ll POW(ll n, ll m) { if (m == 0) { return 1; } else if (m % 2 == 0) { ll tmp = POW(n, m / 2); return (tmp * tmp); } else { return (n * POW(n, m - 1)); } } int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll N; cin >> N; RREP(i, 60) { if (N & (1LL << i)) { cout << (1LL << i) << endl; return 0; } } return 0; }