#include <iostream>
#include <vector>
using namespace std;
vector<int> mul(vector<int> &A,int b){
vector <int> c;
int t=0;
for(int i=0;i<A.size();i++){
t=t+A[i]*b;
c.push_back(t%10);
t/=10;
}
return c;
}
vector<int> pluus(vector<int> &a,vector<int> &b){
int n;
if(a.size()>=b.size()){
n=b.size();
for(int i=0;i<n;i++){
a[i]+=b[i];
if(a[i]>=10){
a[i+1]++;
a[i]%=10;
}
}
return a;
}else{
n=a.size();
for(int i=0;i<n;i++){
b[i]+=a[i];
if(b[i]>=10){
b[i+1]++;
b[i]%=10;
}
}
return b;
}
}
int main(){
int n;
cin>>n;
vector<int> a[n];
if(n==1){
cout<<"1"<<endl;
}
else if(n==2){
cout<<"3"<<endl;
}else{
for(int i=0;i<n;i++){
a[i].push_back(1);
for(int j=1;j<=i+1;j++){
a[i]=mul(a[i],j);
}
}
vector<int> sum{0};
for(int k=0;k<n;k++){
sum=pluus(sum,a[k]);
}
for(int q=sum.size()-1;q>=0;q--){
cout<<sum[q];
}
}
return 0;
}