#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) using namespace std; uint32_t x = 0, y = 1, z = 2, w = 3; uint32_t generate() { uint32_t t = (x ^ (x << 11)); x = y; y = z; z = w; w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)); return w; } void init(uint32_t seed) { x = seed; y = 1; z = 2; w = 3; } int main(void) { uint32_t seed; cin >> seed; uint32_t ans = 0; const int n = 10000001; rep(i,32) { uint32_t mask = ans | 1 << (32 - i - 1); int cnt = 0; init(seed); rep(j, n) { cnt += generate() >= mask; } if (cnt >= (n+1) / 2)ans = mask; } cout << ans << endl; return 0; }