/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[11]={};
int i,b;
for(i=0; i<10; i++){
scanf("%d", &a[i]);
}
scanf("%d", &b);
printf("%d", a[b-1]);
return 0;
}
*/
/*#include<stdio.h>
int main() {
char arr[1000] = {0};
int i, n, k;
gets(arr);
// word : scanf("%s", arr);
printf("%s", arr);
}
*/
/*
#include<stdio.h>
int main()
{
int n,k,i,j;
int a[10000001]= {};
int b[10000001]= {};
int c[10000001]= {};
int p;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &p);
c[p]=1;
}
scanf("%d", &k);
for(i=0; i<k; i++)
{
scanf("%d", &p);
printf("%d ", c[p]);
}
}
*/
/*
#include <stdio.h>
int n, d[110];
int f()
{
int max=0;
int i,k;
if(n==1)
{
return 1;
}
for(i=0; i<n; i++)
{
if(d[i]>max)
{
max=d[i];
k=i;
}
}
return k+1;
}
int main()
{
scanf("%d", &n);
for(int i=0; i<n; i++)
scanf("%d", &d[i]);
printf("%d", f());
return 0;
}
*/
/*
#include <stdio.h>
int n;
int zero(int n){
if(n==0){
return 1;
}
else{
return 0;
}
}
int main()
{
scanf("%d", &n);
if(zero(n)) printf("zero");
else printf("non zero");
return 0;
}
*/
/*#include<stdio.h>
int main()
{
f(5);
}
void f(int k)
{
// break
if(k==0)
return ;
f(k-1);
printf("%d ", k);
// recursion
}
*/
#include<stdio.h>
int main()
{
int k;
scanf("%d", &k);
printf("%d", f(k));
}
int f(int k)
{
if(k==1) return 1;
return k * f(k-1);
}