#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
// Nhận xét: với số x càng lớn thì vị trí của x trong mảng sau khi sort càng lớn
// Từ đây ta có thể tìm kiếm nhị phân số x đầu tiên có vị trí >= k
// Vị trí của x = (số lượng số <= x có trong bảng)
ll n, k;
bool check(ll x) {
ll pos = 0;
for (int i = 1; i <= n; i++) pos += min(x / i, n);
return (pos >= k);
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
k = (n * n + 1) / 2;
ll l = 1, r = n * n, ans = -1;
while (l <= r) {
ll mid = (l + r) >> 1;
if (check(mid)) {
ans = mid;
r = mid - 1;
}
else {
l = mid + 1;
}
}
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgovLyBOaOG6rW4geMOpdDogduG7m2kgc+G7kSB4IGPDoG5nIGzhu5tuIHRow6wgduG7iyB0csOtIGPhu6dhIHggdHJvbmcgbeG6o25nIHNhdSBraGkgc29ydCBjw6BuZyBs4bubbiAKLy8gVOG7qyDEkcOieSB0YSBjw7MgdGjhu4MgdMOsbSBraeG6v20gbmjhu4sgcGjDom4gc+G7kSB4IMSR4bqndSB0acOqbiBjw7MgduG7iyB0csOtID49IGsgCi8vIFbhu4sgdHLDrSBj4bunYSB4ID0gKHPhu5EgbMaw4bujbmcgc+G7kSA8PSB4IGPDsyB0cm9uZyBi4bqjbmcpIApsbCBuLCBrOwoKYm9vbCBjaGVjayhsbCB4KSB7CglsbCBwb3MgPSAwOyAgIAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBwb3MgKz0gbWluKHggLyBpLCBuKTsgICAgCglyZXR1cm4gKHBvcyA+PSBrKTsgIAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAgCQoJY2luID4+IG47IAoJayA9IChuICogbiArIDEpIC8gMjsgCgoJbGwgbCA9IDEsIHIgPSBuICogbiwgYW5zID0gLTE7ICAKCXdoaWxlIChsIDw9IHIpIHsKCQlsbCBtaWQgPSAobCArIHIpID4+IDE7IAoKCQlpZiAoY2hlY2sobWlkKSkgewoJCQlhbnMgPSBtaWQ7ICAKCQkJciA9IG1pZCAtIDE7IAoJCX0KCQllbHNlIHsKCQkJbCA9IG1pZCArIDE7IAoJCX0KCX0KCgljb3V0IDw8IGFucyA8PCAnXG4nOyAKfQ==