#include<iostream>
#define ull long long int
#define mod 1000000007
ull fact(ull n)
{
if(n==1 || n==0) return 1;
return ((n%mod)*(fact(n-1)%mod)%mod);
}
ull fact2(ull n)
{
ull result = 1;
for (ull i = 2; i <= n; ++i) {
result = (result * i) % mod;
}
return result;
}
int main()
{
std::cout<<fact(50000)<<' '<<fact2(50000)<<std::endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiAjZGVmaW5lIHVsbCBsb25nIGxvbmcgaW50CiAjZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiB1bGwgZmFjdCh1bGwgbikKIHsKICAgICAgICAgICBpZihuPT0xIHx8IG49PTApIHJldHVybiAxOwogICAgICAgICAgIHJldHVybiAoKG4lbW9kKSooZmFjdChuLTEpJW1vZCklbW9kKTsKIH0KIAogdWxsIGZhY3QyKHVsbCBuKQogewogCXVsbCByZXN1bHQgPSAxOwogCWZvciAodWxsIGkgPSAyOyBpIDw9IG47ICsraSkgewogCQlyZXN1bHQgPSAocmVzdWx0ICogaSkgJSBtb2Q7CiAJfQogCXJldHVybiByZXN1bHQ7CiB9CiAKIGludCBtYWluKCkKIHsKICAgICAgICAgICAgICBzdGQ6OmNvdXQ8PGZhY3QoNTAwMDApPDwnICc8PGZhY3QyKDUwMDAwKTw8c3RkOjplbmRsOwogICAgICAgICAgICAgIHJldHVybiAwOwogfQ==