
#include <stdio.h>
#include <string.h>
#define MAX 500000 // 预留50万位空间

int main()
{
    int res[MAX], len=1;
    res[0]=1;
    for(int i=2;i<=10000;i++)
    {
        int carry=0;
        for(int j=0;j<len;j++)
        {
            long long temp = (long long)res[j]*i + carry;
            res[j] = temp%10;
            carry = temp/10;
        }
        while(carry>0)
        {
            res[len++] = carry%10;
            carry /= 10;
        }
    }
    // 倒序输出
    for(int i=len-1;i>=0;i--)
        printf("%d",res[i]);
    return 0;
}
