#include #include #include #include #include #include #include #include #include using ll = int64_t; using u32 = uint32_t; using namespace std; static const ll MOD = static_cast(1e12); template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { ll a = 1; ll n; cin >> n; bool f = false; for (int i = 1; i <= min(n, 50L); ++i) { if(a*i >= MOD) f = true; (a *= i) %= MOD; } printf(f ? "%012li" : "%li", a); return 0; }