#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
//大数加法
string addString(string a,string b)
{
int carry=0;
string res;
int i=a.size()-1;
int j=b.size()-1;
while(i>=0 && j>=0)
{
int num=carry+a[i]-'0'+b[j]-'0';
res+=num%10+'0';
carry=num/10;
i--;j--;
}
while(i>=0)
{
int num=carry+a[i]-'0';
res+=num%10+'0';
carry=num/10;
i--;
}
while(j>=0)
{
int num=carry+b[j]-'0';
res+=num%10+'0';
carry=num/10;
j--;
}
if(carry>0)
res+=to_string(carry);
reverse(res.begin(),res.end());
return res;
}
//大数乘法(x<=10)
string mulString(string a,int x)
{
int carry=0;
string res;
for(int i=a.size()-1;i>=0;i--)
{
int num=carry+(a[i]-'0')*x;
res+=num%10+'0';
carry=num/10;
}
if(carry>0)
res+=to_string(carry);
reverse(res.begin(),res.end());
return res;
}
//组合大数乘法
string MulString(string a,string b)
{
string res;
for(int i=0;i<b.size();i++)
{
int x=b[b.size()-1-i]-'0';
string num=mulString(a,x);
for(int j=0;j<i;j++)
num=mulString(num,10);
res=addString(res,num);
}
return res;
}
int main()
{
int n;
while(cin>>n)
{
string res="1";
for(int i=2;i<=n;i++)
{
res=MulString(res,to_string(i));
}
cout<<res<<endl;
}
return 0;
}