#pragma region header
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n)for(int i=0;i<(n);i++)
#define ALL(a) (a).begin(), (a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define pb push_back
#define int ll
#define each(i, a) for (auto &&i : (a))
using ll = long long;
using ld = long double;
using vi = vector<int>;
using vvi = vector<vi>;
using vs = vector<string>;
using vvs = vector<vs>;
using vd = vector<ld>;
using vvd = vector<vd>;
using vb = vector<bool>;
using vvb = vector<vb>;
using P = pair<int, int>;
using vp = vector<P>;
using int128 = __int128_t;//cin coutはできない
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a / gcd(a, b) * b;};
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};

template <class T>
void CVEC(const T &v) {
	int c = v.size() - 1;
	for (int i = 0; i < c; i++) cout << v[i] << ' ';
	if (c > -1) cout << v[c];
	cout << '\n';
}

#pragma endregion header

const int MAX_N = 205;

ll Com[MAX_N][MAX_N];


void init(){
    memset(Com,0,sizeof(Com));
    Com[0][0] = 1;
    for(int i = 1; i < MAX_N; ++i){
        Com[i][0] = 1;
        for(int j = 1; j < MAX_N; ++j){
            Com[i][j] = (Com[i - 1][j - 1] + Com[i - 1][j]);
        }
    }
}

ll nCk(int n, int k){
    assert(!(n < k));
    assert(!(n < 0 || k < 0));
    return Com[n][k];
}


signed main(){
    int l; cin >>l;
	init();
	cout << nCk(l-1, 11) << endl;
}
#include <iostream>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
#include <fstream>
#include <sstream>
#include <iomanip>
#define ll long long
#define MAX_N 10000

using namespace std;

long long MOD = 1000000007*1000000007;

long long fact[MAX_N];
void factorial(int N){
    fact[0]=1;
    for(int i=0; i<N; i++){
        fact[i+1]=(i+1)*fact[i]%MOD;
    }
}

map<long long, long long> inv;
long long inverse(long long x){
    if (inv.count(x)){
        return inv[x];
    }
    long long p=MOD-2;
    long long ret=1;
    long long tmp=x;
    while(p>0){
        if(p%2==1)ret=ret*tmp%MOD;
        tmp=tmp*tmp%MOD;
        p/=2;
    }
    inv[x]=ret;
    return ret;
}

long long comb(int a, int b){
    long long ret=fact[a]*inverse(fact[a-b])%MOD;
    return ret*inverse(fact[b])%MOD;
}

int main(){
    int L;
    cin >> L;
    L-=1;
    ll ans=1;

    ll tmp=2;
    for(ll i=L-10;i<=L;i++){
        ans*=i;
        while(ans%tmp==0 && tmp<12){
            ans/=tmp;
            tmp++;
        }
    }
    cout << ans << endl;
}