#include "bits/stdc++.h" #define REP(i,n) for(ll i=0;i=0;--i) #define FOR(i,m,n) for(ll i=m;i=m;--i) #define ALL(v) (v).begin(),(v).end() #define PB(a) push_back(a) #define UNIQUE(v) v.erase(unique(ALL(v)),v.end()); #define DUMP(v) REP(i, (v).size()) { cout << v[i]; if (i != v.size() - 1)cout << " "; else cout << endl; } #define INF 1000000001ll #define MOD 1000000007ll #define EPS 1e-9 const int dx[8] = { 1,1,0,-1,-1,-1,0,1 }; const int dy[8] = { 0,1,1,1,0,-1,-1,-1 }; using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef vector vvi; typedef vector vvl; typedef pair pii; typedef pair pll; ///(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)/// ll fact[114514]; int main() { cin.tie(0); ios::sync_with_stdio(false); ll n; cin >> n; set st; ll res = 1, cnt = 1; fact[0] = 1; const ll mod = 1e12; while (st.count(res)==0) { st.insert(res); fact[cnt] = res; cnt++; res *= cnt; res %= mod; if (n == cnt) { cout << res << endl; return 0; } } cout << fact[n%cnt] << endl; return 0; }