#include <iostream>
typedef long long int type;
using namespace std;
const type size = 10;
type mod (type a) // a%10
{
type next=a/10;
return a-10*next;
}
void silnia (type n)
{
cout << "nie ma mnie" << endl;
unsigned int * const T = new unsigned int [size];
for(type i = 1; i!=size; ++i)
*(T + i) = 0;
*T = 1;
type i;
type liczba_cyfr = 1;
for(type k = 2; k<=n; ++k) // 2, 3, 4,..., n
{
for(i = 0; i<liczba_cyfr; ++i) // mnozymy kazdą cyfre
*(T+i)*= k;
for(i = 0; i<liczba_cyfr || T[i]>0; ++i)
{
T[i+1]+= T[i];
T[i] = mod(T[i]);
}
liczba_cyfr = i;
}
for(unsigned int *wsk = T+size-1; wsk>=T ; --wsk)
cout<<*wsk;
return;
}
int main()
{
type n;
cin >> n;
silnia (n);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgdHlwZTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IHR5cGUgc2l6ZSA9IDEwOwoKdHlwZSBtb2QgKHR5cGUgYSkgLy8gYSUxMAp7CiAgdHlwZSBuZXh0PWEvMTA7CiAgcmV0dXJuIGEtMTAqbmV4dDsKfQoKdm9pZCBzaWxuaWEgKHR5cGUgbikKewogIGNvdXQgPDwgIm5pZSBtYSBtbmllIiA8PCBlbmRsOwogIHVuc2lnbmVkIGludCAqIGNvbnN0IFQgPSBuZXcgdW5zaWduZWQgaW50IFtzaXplXTsKCiAgZm9yKHR5cGUgaSA9IDE7IGkhPXNpemU7ICsraSkKICAgICooVCArIGkpID0gMDsKICAqVCA9IDE7CgogIHR5cGUgaTsKICB0eXBlIGxpY3piYV9jeWZyID0gMTsKCiAgZm9yKHR5cGUgayA9IDI7IGs8PW47ICsraykgLy8gMiwgMywgNCwuLi4sIG4KICB7CiAgICBmb3IoaSA9IDA7IGk8bGljemJhX2N5ZnI7ICsraSkgLy8gbW5venlteSBrYXpkxIUgY3lmcmUKICAgICAgKihUK2kpKj0gazsKCiAgICBmb3IoaSA9IDA7IGk8bGljemJhX2N5ZnIgfHwgVFtpXT4wOyArK2kpCiAgICB7CiAgICAgIFRbaSsxXSs9IFRbaV07CiAgICAgIFRbaV0gPSBtb2QoVFtpXSk7CiAgICB9CiAgICBsaWN6YmFfY3lmciA9IGk7CiAgfQoKICBmb3IodW5zaWduZWQgaW50ICp3c2sgPSBUK3NpemUtMTsgd3NrPj1UIDsgLS13c2spCiAgICBjb3V0PDwqd3NrOwoKICByZXR1cm47Cn0KCmludCBtYWluKCkKewogIHR5cGUgbjsKICBjaW4gPj4gbjsKICBzaWxuaWEgKG4pOwogIHJldHVybiAwOwp9