#include <bits/stdc++.h>
using namespace std;
int a[1000],b[1000];
inline int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
inline void jia()
{
int zhong=0;
for(int i=1; i<1000; i++)
{
b[i]+=a[i]+zhong;
zhong=b[i]/10;
b[i]%=10;
}
}
inline void cheng(int KO)
{
int zhong=0;
for(int i=1; i<1000; i++)
{
a[i]=a[i]*KO+zhong;
zhong=a[i]/10;
a[i]%=10;
}
}
int main()
{
int n;
n=read();
a[1]=1;
for(int i=1; i<=n; i++)//就是这里,从小到大是正确,从大到小是错误
{
cheng(i);
jia();
}
int flag=0;
for(int i=999; i>=1; i--)
{
if(b[i]!=0)
flag=1;
if(flag)
printf("%d",b[i]);
}
printf("\n");
return 0;
}