#include <bits/stdc++.h>
using namespace std;
string vow = "aeiou";
long long month[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const long long dxhorse[] = {-2, -2, -1, -1, 1, 1, 2, 2};
const long long dyhorse[] = {1, -1, 2, -2, 2, -2, 1, -1};
const long long dx4[] = {-1, 0, 1, 0};
const long long dy4[] = {0, 1, 0, -1};
const long long dx8[] = {-1, -1, -1, 0, 0, 1, 1, 1};
const long long dy8[] = {-1, 0, 1, -1, 1, -1, 0, 1};
const long double pie = 3.1415926535897932384626;
const long long special_prime = 982451653l;
const long long mod = 1e9 + 7;
const long long inf = 2e18;
template <class T>
istream &operator>>(istream &in, vector<T> &a) {
  for (auto &i : a) cin >> i;
  return in;
}
template <class T>
ostream &operator<<(ostream &out, const vector<T> &a) {
  for (auto &i : a) cout << i << " ";
  return out;
}
template <class T, class U>
ostream &operator<<(ostream &out, const map<T, U> &a) {
  for (auto &i : a) cout << "(" << i.first << ", " << i.second << ")\n";
  return out;
}
template <class T, class U>
ostream &operator<<(ostream &out, const unordered_map<T, U> &a) {
  for (auto &i : a) cout << "(" << i.first << ", " << i.second << ")\n";
  return out;
}
bool comp(long long a, long long b) { return a > b; }
void sieve(vector<long long> &prime) {
  prime[0] = false;
  prime[1] = false;
  for (long long p = 2; p * p <= 99999; p++) {
    if (prime[p] == true) {
      for (long long i = p * p; i <= 99999; i += p) prime[i] = false;
    }
  }
}
void solve() {
  long long n;
  cin >> n;
  if (n % 2 == 0)
    cout << n / 2;
  else
    cout << n / 2 - n;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  for (long long i = 1; i <= t; i++) solve();
}

### Prompt

Your task is to create a cpp solution to the following problem:

For a positive integer n let's define a function f:

f(n) = - 1 + 2 - 3 + .. + ( - 1)nn

Your task is to calculate f(n) for a given integer n.

Input

The single line contains the positive integer n (1 ≤ n ≤ 1015).

Output

Print f(n) in a single line.

Examples

Input

4


Output

2


Input

5


Output

-3

Note

f(4) = - 1 + 2 - 3 + 4 = 2

f(5) = - 1 + 2 - 3 + 4 - 5 = - 3

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
string vow = "aeiou";
long long month[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const long long dxhorse[] = {-2, -2, -1, -1, 1, 1, 2, 2};
const long long dyhorse[] = {1, -1, 2, -2, 2, -2, 1, -1};
const long long dx4[] = {-1, 0, 1, 0};
const long long dy4[] = {0, 1, 0, -1};
const long long dx8[] = {-1, -1, -1, 0, 0, 1, 1, 1};
const long long dy8[] = {-1, 0, 1, -1, 1, -1, 0, 1};
const long double pie = 3.1415926535897932384626;
const long long special_prime = 982451653l;
const long long mod = 1e9 + 7;
const long long inf = 2e18;
template <class T>
istream &operator>>(istream &in, vector<T> &a) {
  for (auto &i : a) cin >> i;
  return in;
}
template <class T>
ostream &operator<<(ostream &out, const vector<T> &a) {
  for (auto &i : a) cout << i << " ";
  return out;
}
template <class T, class U>
ostream &operator<<(ostream &out, const map<T, U> &a) {
  for (auto &i : a) cout << "(" << i.first << ", " << i.second << ")\n";
  return out;
}
template <class T, class U>
ostream &operator<<(ostream &out, const unordered_map<T, U> &a) {
  for (auto &i : a) cout << "(" << i.first << ", " << i.second << ")\n";
  return out;
}
bool comp(long long a, long long b) { return a > b; }
void sieve(vector<long long> &prime) {
  prime[0] = false;
  prime[1] = false;
  for (long long p = 2; p * p <= 99999; p++) {
    if (prime[p] == true) {
      for (long long i = p * p; i <= 99999; i += p) prime[i] = false;
    }
  }
}
void solve() {
  long long n;
  cin >> n;
  if (n % 2 == 0)
    cout << n / 2;
  else
    cout << n / 2 - n;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  for (long long i = 1; i <= t; i++) solve();
}

```