#include<iostream>
#include<algorithm>
using namespace std;
int cur_size ;
void mult( string &s , int n ){
if( n== 100 ){s = "00" + s;cur_size += 2;return ;}
string t1, t2,x;
int num = n%10,carry=0,temp;
for(int i=0;;i++)
{
if(carry == 0 && s[i]=='0' && i >= cur_size)
break;
temp = ( (s[i]-'0') * num) + carry;
carry = temp / 10;
temp %= 10;
t1.push_back( '0' + temp) ;
}
n/= 10;
carry = 0;
if(n != 0)
{
for(int i=0;;i++)
{
if(carry == 0 && s[i]=='0' && i >= cur_size )break;
temp = ( (s[i]-'0') * n) + carry;
carry = temp / 10;
temp %= 10;
t2.push_back('0' + temp);
}
s[0] = t1[0];
carry = 0;
for(int i=t1.size();i<=t2.size();i++)
t1.push_back('0');
for(int i=1;;i++)
{
if( i > t2.size() )
{
if(carry == 0)
break;
else {s[i] = '0' + carry;break;}
}
temp = ( t1[i] + t2[i-1] - (2*'0') ) + carry;
carry = temp/10;
s[i] = '0' + (temp% 10) ;
}
cur_size = t2.size()+1;
}
else
{
for(int i=0;i<t1.size();i++)s[i] = t1[i];cur_size = t1.size();
}
}
int main()
{
int t,n;
string s;
s.resize (300);
cin>>t;
while(t)
{
cin>>n;
fill( s.begin() , s.end() , '0' );
s[0] = '1';
cur_size = 1;
for(int i=2;i<=n;i++)
mult( s , i);
for(int i=cur_size-1;i>=0;i--)
cout<<s[i];
cout<<endl;
t--;
}
return 0;
}
ICAgICNpbmNsdWRlPGlvc3RyZWFtPgogICAgI2luY2x1ZGU8YWxnb3JpdGhtPgogICAgIAogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIGludCBjdXJfc2l6ZSA7CiAgICB2b2lkIG11bHQoIHN0cmluZyAmcyAsIGludCBuICl7CiAgICBpZiggbj09IDEwMCApe3MgPSAiMDAiICsgcztjdXJfc2l6ZSArPSAyO3JldHVybiA7fQogICAgc3RyaW5nIHQxLCB0Mix4OwogICAgaW50IG51bSA9IG4lMTAsY2Fycnk9MCx0ZW1wOwogICAgZm9yKGludCBpPTA7O2krKykKICAgIHsKICAgIGlmKGNhcnJ5ID09IDAgJiYgc1tpXT09JzAnICYmIGkgPj0gY3VyX3NpemUpCiAgICBicmVhazsKICAgIHRlbXAgPSAoIChzW2ldLScwJykgKiBudW0pICsgY2Fycnk7CiAgICBjYXJyeSA9IHRlbXAgLyAxMDsKICAgIHRlbXAgJT0gMTA7CiAgICB0MS5wdXNoX2JhY2soICcwJyArIHRlbXApIDsKICAgIH0KICAgIG4vPSAxMDsKICAgIGNhcnJ5ID0gMDsKICAgIGlmKG4gIT0gMCkKICAgIHsKICAgICAKICAgIGZvcihpbnQgaT0wOztpKyspCiAgICB7CiAgICBpZihjYXJyeSA9PSAwICYmIHNbaV09PScwJyAmJiBpID49IGN1cl9zaXplIClicmVhazsKICAgIHRlbXAgPSAoIChzW2ldLScwJykgKiBuKSArIGNhcnJ5OwogICAgY2FycnkgPSB0ZW1wIC8gMTA7CiAgICB0ZW1wICU9IDEwOwogICAgdDIucHVzaF9iYWNrKCcwJyArIHRlbXApOwogICAgIAogICAgfQogICAgc1swXSA9IHQxWzBdOwogICAgY2FycnkgPSAwOwogICAgIAogICAgZm9yKGludCBpPXQxLnNpemUoKTtpPD10Mi5zaXplKCk7aSsrKQogICAgdDEucHVzaF9iYWNrKCcwJyk7CiAgICAgCiAgICBmb3IoaW50IGk9MTs7aSsrKQogICAgewogICAgaWYoIGkgPiB0Mi5zaXplKCkgKQogICAgewogICAgaWYoY2FycnkgPT0gMCkKICAgIGJyZWFrOwogICAgZWxzZSB7c1tpXSA9ICcwJyArIGNhcnJ5O2JyZWFrO30KICAgIH0KICAgIHRlbXAgPSAoIHQxW2ldICsgdDJbaS0xXSAtICgyKicwJykgKSArIGNhcnJ5OwogICAgY2FycnkgPSB0ZW1wLzEwOwogICAgc1tpXSA9ICcwJyArICh0ZW1wJSAxMCkgOwogICAgfQogICAgY3VyX3NpemUgPSB0Mi5zaXplKCkrMTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgIGZvcihpbnQgaT0wO2k8dDEuc2l6ZSgpO2krKylzW2ldID0gdDFbaV07Y3VyX3NpemUgPSB0MS5zaXplKCk7CiAgICB9CiAgICB9CiAgICAgCiAgICBpbnQgbWFpbigpCiAgICB7CiAgICAgCiAgICBpbnQgdCxuOwogICAgc3RyaW5nIHM7CiAgICBzLnJlc2l6ZSAoMzAwKTsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQpCiAgICB7CiAgICBjaW4+Pm47CiAgICBmaWxsKCBzLmJlZ2luKCkgLCBzLmVuZCgpICwgJzAnICk7CiAgICBzWzBdID0gJzEnOwogICAgY3VyX3NpemUgPSAxOwogICAgZm9yKGludCBpPTI7aTw9bjtpKyspCiAgICBtdWx0KCBzICwgaSk7CiAgICBmb3IoaW50IGk9Y3VyX3NpemUtMTtpPj0wO2ktLSkKICAgIGNvdXQ8PHNbaV07CiAgICBjb3V0PDxlbmRsOwogICAgdC0tOwogICAgfQogICAgcmV0dXJuIDA7CiAgICB9Cg==