#include <iostream>
#include <string>
using namespace std;
typedef long long ll;

string addString(string a, string b) {
    int carry = 0; //进位
    string res = "";
    int i = a.length()-1;
    int j = b.length()-1;
    while(i>=0 && j>=0) {
        int cur_sum = (a[i]-'0') + (b[j]-'0') + carry;
        res = char(cur_sum%10+'0') + res;
        carry = cur_sum/10;
        i--;
        j--;
    }
    while(i>=0) {
        int cur_sum = (a[i]-'0')+carry;
        res = char(cur_sum%10+'0') + res;
        carry = cur_sum/10;
        i--;
    }
    while(j>=0) {
        int cur_sum = (b[j]-'0')+carry;
        res = char(cur_sum%10+'0') + res;
        carry = cur_sum/10;
        j--;
    }
    if(carry>0) {
        res = char(carry+'0') + res;
    }
    return res;
}

string mulString(string a, int x) {
    int carry = 0;
    int i = a.length()-1;
    string res = "";
    while(i>=0) {
        int cur_times = (a[i]-'0')*x + carry;
        res = char(cur_times%10+'0') + res;
        carry = cur_times/10;
        i--;
    }
    if(carry>0) {
        res = char(carry+'0') + res;
    }
    return res;
}

string MulString(string a, string b) {
    string res = "";
    int len_b = b.length();
    for(int i = 0; i<len_b; i++) {
        int x = b[len_b-1-i]-'0';
        string cur_times = mulString(a, x);
        for(int j = 0; j<i; j++) {
            cur_times = mulString(cur_times, 10);
        }
        res = addString(res, cur_times);
    }
    return res;
}


int main() {
    int n;
    while (cin >> n) { // 注意 while 处理多个 case
        string res = "1";
        for(int i = 2; i<=n; i++) {
            res = MulString(res, to_string(i));
        }        
        cout << res << endl;
    }
}
// 64 位输出请用 printf("%lld")