#include <iostream>//高精度乘法模板题
#include <string>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;


string ItoS(int x)
{
    string ans="";
    while(x!=0)
    {
        char c = x%10 +'0';
        ans = ans + c;
        x/=10;
    }
    reverse(ans.begin(),ans.end());
    return ans;

}
string Mul(string s1,string s2)
{
    int len1 = s1.size(),len2 = s2.size();
    if(len1<len2)swap(s1,s2);
    int len = len1+len2+1;
    int n[len+1];
    memset(n,0,sizeof(n));
    reverse(s1.begin(),s1.end());
    reverse(s2.begin(),s2.end());
    string ans="";
    for(int i=0;i<s1.size();i++)
    {
        for(int j=0;j<s2.size();j++)
        {
            n[i+j] += (s1[i]-'0')*(s2[j]-'0');
        }
    }
    for(int i=0;i<len;i++)
    {
        int car = n[i]/10;
        n[i] = n[i]%10;
        n[i+1] +=car;
        char c = '0'+n[i];
        ans = ans + c;
    }
    reverse(ans.begin(),ans.end());
    while(ans[0]=='0')ans.erase(0,1);
    return ans;

}

int main() {
    int N;
    cin>>N;
    string ans="1";
    for(int i=1;i<=N;i++)
    {
        ans = Mul(ans,ItoS(i));
    }
    cout<<ans<<endl;
    
}