#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fop(i, n) for(int i=0; i<n; ++i)
#define bgen(i) i.begin(),i.end()

void chmin(int& a, int& b){if(a > b)a = b;}
void chmax(int& a, int& b){if(a < b)a = b;}

ll xcy(int i){
  ll ic = 1;
  fop(j, 5) ic *= i-j;
  return ic/120;
}

int main() {
  int l; cin >> l; --l;
  bool odd = l%2;

  ll ans = 0;
  for(int i=6; i<=l-5; ++i){
    int i1 = i-1;
    ll ans1 = xcy(i1);

    if(odd && i == (l+1)/2) ans1 *= ans1;
    else{
      int i2 = l-i;
      ans1 *= xcy(i2);
    }
    ans += ans1;
  }

  cout << ans << endl;
}

// C++ implementation to find nCr
#include <bits/stdc++.h>
using namespace std;

// Function to find the nCr
long long printNcR(long long n, long long r)
{

	// p holds the value of n*(n-1)*(n-2)...,
	// k holds the value of r*(r-1)...
	long long p = 1, k = 1;

	// C(n, r) == C(n, n-r),
	// choosing the smaller value
	if (n - r < r)
		r = n - r;

	if (r != 0) {
		while (r) {
			p *= n;
			k *= r;

			// gcd of p, k
			long long m = __gcd(p, k);

			// dividing by gcd, to simplify
			// product division by their gcd
			// saves from the overflow
			p /= m;
			k /= m;

			n--;
			r--;
		}

		// k should be simplified to 1
		// as C(n, r) is a natural number
		// (denominator should be 1 ) .
	}

	else
		p = 1;

	// if our approach is correct p = ans and k =1
	return p;
}

// Driver code
int main()
{
	long long n;
	cin>>n;
	cout<<printNcR(n-1,11)<<endl;

	return 0;
}

