#include <bits/stdc++.h>
using namespace std;
void show(int a[],int n){
	for(int i = 0;i < n;i++){
		cout<<a[i]<<" ";
	}
	cout<<endl;
}
 
int main(){
    int a[100][100] = {0};//存储每一项(2、2*2、2*2*2...) 
    int r[100] = {0};//存储总和的结果 
    int i,j,n;
    cin>>n;
    a[1][0] = 1;
    int k = 1;//代表第i项共有多少位 
    for(i = 2;i <= n;i++){
    	//逐项乘n 
        for(j = 0;j < k;j++){
            a[i][j] = a[i - 1][j] * i;
        }
         
        //最多多3位出来(乘以100) 
        k = k + 3; 
        for(j = 0;j < k;j++){
            if(a[i][j] >= 10){
                a[i][j + 1] = a[i][j + 1] + a[i][j] / 10;
                a[i][j] = a[i][j] % 10; 
            }
        }
        
        //判断第i项乘以n后有没有多一项出现
        while(a[i][k-1]==0){
            k--;
        }
        
//        show(a[i],k);
    }
     
    //求和
    for(i = 1;i <= n;i++){
        for(j = 0;j < k;j++){
            r[j] = r[j] + a[i][j];
             
            if(r[j] >= 10){
                r[j + 1] += r[j] / 10;
                r[j] = r[j] % 10;
            }
        }
         
        if(r[k] > 0){
            k++;
        }
    }
     
    int p = 0;
    for(i = k - 1;i >= 0;i--){
        if(r[i] != 0){
            p = i;
            break;
        }
    } 
 
    for(i = p;i >= 0;i--){
        cout<<r[i];
    } 
}
/**************************************************************
	Problem: 1296
	User: admin
	Language: C++
	Result: Accepted
	Time:16 ms
	Memory:2076 kb
****************************************************************/