#include<bits/stdc++.h>
using namespace std;
int fact[1000][2500];
void fact_large(int n)
{
int i;
fact[1][0] = 1;
fact[1][1] = 1;
if (fact[n][0] == 0)
{
for (i = n - 1; i > 0 ; i--)
{
if (fact[i][0] != 0)
break;
}
for ( ; i < n; i++)
{
int j = 1;
int carry = 0;
int len = fact[i][0];
while (len--)
{
int temp = (i + 1) * fact[i][j] + carry;
fact[i + 1][j] = temp % 10;
carry = temp / 10;
j++;
}
while (carry > 0)
{
fact[i + 1][j] = carry % 10;
carry /= 10;
j++;
}
fact[i + 1][0] = j - 1;
}
}
for (i = fact[n][0]; i > 0; i--)
{
cout << fact[n][i];
}
cout<<endl;
}
int main()
{
int n, t;
cin>>t;
while(t--)
{
cin>>n;
fact_large(n);
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGZhY3RbMTAwMF1bMjUwMF07Cgp2b2lkIGZhY3RfbGFyZ2UoaW50IG4pCnsKICAgIGludCBpOwogICAgZmFjdFsxXVswXSA9IDE7CiAgICBmYWN0WzFdWzFdID0gMTsKICAgIGlmIChmYWN0W25dWzBdID09IDApCiAgICB7CiAgICAgICAgZm9yIChpID0gbiAtIDE7IGkgPiAwIDsgaS0tKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGZhY3RbaV1bMF0gIT0gMCkKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBmb3IgKCA7IGkgPCBuOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpbnQgaiA9IDE7CiAgICAgICAgICAgIGludCBjYXJyeSA9IDA7CiAgICAgICAgICAgIGludCBsZW4gPSBmYWN0W2ldWzBdOwogICAgICAgICAgICB3aGlsZSAobGVuLS0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGludCB0ZW1wID0gKGkgKyAxKSAqIGZhY3RbaV1bal0gKyBjYXJyeTsKICAgICAgICAgICAgICAgIGZhY3RbaSArIDFdW2pdID0gdGVtcCAlIDEwOwogICAgICAgICAgICAgICAgY2FycnkgPSB0ZW1wIC8gMTA7CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2hpbGUgKGNhcnJ5ID4gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZmFjdFtpICsgMV1bal0gPSBjYXJyeSAlIDEwOwogICAgICAgICAgICAgICAgY2FycnkgLz0gMTA7CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmFjdFtpICsgMV1bMF0gPSBqIC0gMTsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGkgPSBmYWN0W25dWzBdOyBpID4gMDsgaS0tKQogICAgewogICAgICAgIGNvdXQgPDwgZmFjdFtuXVtpXTsKICAgIH0KICAgIGNvdXQ8PGVuZGw7Cn0KCmludCBtYWluKCkKewogICAgaW50IG4sIHQ7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgIGNpbj4+bjsKICAgICAgZmFjdF9sYXJnZShuKTsKICAgIH0KICAgIHJldHVybiAwOwp9