You are given an integer number n. The following algorithm is applied to it:

  1. if n = 0, then end algorithm; 
  2. find the smallest prime divisor d of n; 
  3. subtract d from n and go to step 1. 



Determine the number of subtrations the algorithm will make.

Input

The only line contains a single integer n (2 ≤ n ≤ 10^{10}).

Output

Print a single integer — the number of subtractions the algorithm will make.

Examples

Input


5


Output


1


Input


4


Output


2

Note

In the first example 5 is the smallest prime divisor, thus it gets subtracted right away to make a 0.

In the second example 2 is the smallest prime divisor at both steps.
#include <bits/stdc++.h>
using namespace std;
long long int prime[10000] = {0};
long long int len = 0;
void primelist() {
  prime[0] = 2;
  len++;
  for (long long int i = 3; i <= 100000; i += 2) {
    bool ok = 1;
    for (long long int j = 0; prime[j] <= sqrt(i); j++) {
      if (i % prime[j] == 0) {
        ok = 0;
        break;
      }
    }
    if (ok) prime[len++] = i;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  primelist();
  long long int n;
  while (cin >> n) {
    int pos = 0, ok = 1;
    for (int i = 0; prime[i] <= sqrt(n); i++) {
      if (n % prime[i] == 0) {
        ok = 0;
        pos = i;
        break;
      }
    }
    if (!ok)
      cout << n / prime[pos] << endl;
    else
      cout << 1 << endl;
  }
}
