#include <iostream>
#include <vector>
using namespace std;
vector<int> multiply(vector<int> num, int multiplier) {
    vector<int> result;
    int carry = 0;
    for (int i = 0; i < num.size(); ++i) {
        int product = num[i] * multiplier + carry;
        result.push_back(product % 10);
        carry = product / 10;
    }
    while (carry) {
        result.push_back(carry % 10);
        carry /= 10;
    }
    return result;
}

// 计算n的阶乘
vector<int> factorial(int n) {
    vector<int> result = {1};
    for (int i = 2; i <= n; ++i) {
        result = multiply(result, i);
    }
    return result;
}

int main() {
    int n;
    cin >> n;
    vector<int> result = factorial(n);
    for (int i = result.size() - 1; i >= 0; --i) {
        cout << result[i];
    }
    cout << endl;
    return 0;
}    
/**************************************************************
	Problem: 1285
	User: panyuchen
	Language: C++
	Result: Accepted
	Time:16 ms
	Memory:2076 kb
****************************************************************/