#include
#include
#define MAX 10000//乘積的最大長度
void solve(char str[],int n,char key[])
{
int e,d;
int i,j,k;
int p;
int len;
len=strlen(str);
for(i=0;i
j=0;
do
{
p=n%10;
n=n/10;
e=0;
for(k=0,i=len-1;i>=0;i--,k++)
{
d=(str[i]-'0')*p+key[k+j]-'0'+e;
e=d/10;
key[k+j]=d%10+'0';
}
while(e)
{
d=key[k+j]-'0'+e;
e=d/10;
key[k+j]=d%10+'0';
k++;
}
j++;
}while(n);
for(i=MAX-1;i>=0;i--)
{
if(key[i]!='0') break;
}
for(j=0;j<=i;j++) str[j]=key[i-j];
str[j]=0;
strcpy(key,str);
}
int main()
{
char str[MAX],key[MAX];
int n;
int i;
while(scanf("%d",&n))
{
str[0]='1';
str[1]=0;
for(i=1;i<=n;i++)
{
solve(str,i,key);
strcpy(str,key);
}
printf("%s\n",key);
}
return 0;
}