#include <bits/stdc++.h>
using namespace std;
struct node {
  int l, r;
  node(int _l, int _r) : l(_l), r(_r) {}
  bool operator<(const node& t) const {
    if (l == t.l) return r < t.r;
    return l > t.l;
  }
};
priority_queue<node> num;
vector<int> res;
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    for (int j = i + 1; j <= n; ++j) {
      num.push({i, j});
    }
  }
  while (!num.empty()) {
    node t = num.top();
    num.pop();
    bool suc = false;
    for (int i = 0; i < res.size(); ++i) {
      if (res[i] <= t.l) {
        res[i] = t.r;
        suc = true;
        break;
      }
    }
    if (!suc) res.push_back(t.r);
  }
  printf("%d\n", res.size());
  return 0;
}
