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

vector<int> multiply(vector<int>a, int b) {
    vector<int>c;
    int t = 0;//进位
    //进位不为0时循环不能停,别忘了
    for (int i = 0; i < a.size()||t; i++) {
        if(i<a.size())
            t += a[i] * b;
        c.push_back(t % 10);
        t /= 10;
    }
    return c;

}
int main() {
    //高精度是倒着存
    vector<int>a;
    string str;
    int n;
    cin >> n;
    // str=to_string(n);
    // for(int i=str.size()-1;i>=0;i--){
    //         a.push_back(str[i]);
    // }
    a.push_back(1);
    for (int i = n; i > 0; i--) {
        a = multiply(a, i);
    }
    for (int i = a.size() - 1; i >= 0; i--)
        cout << a[i];


}
// 64 位输出请用 printf("%lld")