#include <iostream>
#include <vector>
using namespace std;

const int N = 1010;
vector<int> f[N];//存储每个数的阶乘

vector<int> mul(vector<int>& A, int b) {
    int t = 0;
    vector<int> C;
    for (int i = 0; i < A.size(); i++) {
        t += A[i] * b;
        C.push_back(t % 10);
        t /= 10; //向高位进位
    }
    while (t) {
        C.push_back(t % 10);
        t /= 10;
    }
    return C;
}
int main() {
    //预处理
    f[0] = {1}; //0!=1
    for (int i = 1; i <= 1000; i++) {
        f[i] = mul(f[i - 1], i);
    }
  //打表
    int n;
    while (cin >> n) {
        for (int i = f[n].size() - 1; i >= 0; i--)
            cout << f[n][i];
        cout << endl;
    }
    return 0;
}