#include <iostream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <cmath>
#include <map>
#include <set>
#include <cstring>
#include <stack>
#include <string>
using namespace std;
typedef long long ll;
const int N = 1e5+199;
const double Pi = acos(-1);
int digit[N];
void Show(int len){
for(int i=len-1;i>=0;i--)
printf("%d",digit[i]);
printf("\n");
}
int Init(int n){
int cnt=0;
while(n){
digit[cnt++]=n%10;
n/=10;
}
return cnt;
}
void Solve(int n,int len){
int fc=0;//记录进位;
// cout<<n<<" "<<len<<endl;
for(int i=n-1;i>1;i--){
for(int j=0;j<len;j++){
digit[j]=digit[j]*i+fc;
fc=digit[j]/10;
digit[j]%=10;
}
while(fc>0){
digit[len++]=fc%10;
fc/=10;
}
}
Show(len);
}
int main()
{
//
// #ifndef ONLINE_JUDGE
// freopen("in.txt","r",stdin);
// #endif // ONLINE_JUDGE
int n;
scanf("%d",&n);
int len=Init(n);//将整数n的每一位分解到数组中去;
Solve(n,len);
return 0;
}