#include<stdio.h>
#include<math.h>
int main()
{
char a[501];
int b[500];
int z[11]={1,1,2,6,24,120,720,5040,40320,362800,3628000};
int prime[95]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,
73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,
179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,
283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,
419,421,431,433,439,443,449,457,461,463,467,479,487,491,499};
int t,no,i,c,j,priou,k;
long int count1,count2,count3;
while(t!=0)
{
no=0;
i=0;
{
a[i]=c;
i++;
}
no=i;
a[i]='\n';
for(i=0;i<no;i++)
{
for(j=i+1;(a[i]>48 && j<no);j++)
{
if(a[i]==a[j])
{
b[i]++;
a[j]=4;
}
}
}
count1=count2=1;
i=0;
while(1)
{
priou=0;
if(no>=prime[i])
{
k=no;
while(k!=0)
{
j=k/prime[i];
priou=priou+j;
k=j;
}
count1
=pow(prime
[i
],priou
); count1=count2*count1;
count2=count1%count3;
i++;
}
else if(no<prime[i])
break;
}
for(j=0;j<no;j++)
{
if(b[j]>1)
{
count1=count2/z[b[j]];
count2=count1;
}
}
t--;
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgppbnQgbWFpbigpCnsKICAgIGNoYXIgYVs1MDFdOwogICAgaW50IGJbNTAwXTsKICAgIGludCB6WzExXT17MSwxLDIsNiwyNCwxMjAsNzIwLDUwNDAsNDAzMjAsMzYyODAwLDM2MjgwMDB9OwogICAgaW50IHByaW1lWzk1XT17MiwzLDUsNywxMSwxMywxNywxOSwyMywyOSwzMSwzNyw0MSw0Myw0Nyw1Myw1OSw2MSw2Nyw3MSwKCTczLDc5LDgzLDg5LDk3LDEwMSwxMDMsMTA3LDEwOSwxMTMsMTI3LDEzMSwxMzcsMTM5LDE0OSwxNTEsMTU3LDE2MywxNjcsMTczLAoJMTc5LDE4MSwxOTEsMTkzLDE5NywxOTksMjExLDIyMywyMjcsMjI5LDIzMywyMzksMjQxLDI1MSwyNTcsMjYzLDI2OSwyNzEsMjc3LDI4MSwKCTI4MywyOTMsMzA3LDMxMSwzMTMsMzE3LDMzMSwzMzcsMzQ3LDM0OSwzNTMsMzU5LDM2NywzNzMsMzc5LDM4MywzODksMzk3LDQwMSw0MDksCgk0MTksNDIxLDQzMSw0MzMsNDM5LDQ0Myw0NDksNDU3LDQ2MSw0NjMsNDY3LDQ3OSw0ODcsNDkxLDQ5OX07CiAgICBpbnQgdCxubyxpLGMsaixwcmlvdSxrOwogICAgbG9uZyBpbnQgY291bnQxLGNvdW50Mixjb3VudDM7CiAgICBzY2FuZigiJWQiLCZ0KTsKICAgIGdldGNoYXIoKTsKICAgICBjb3VudDM9KHBvdygxMCw5KSs3KTsKICAgIHdoaWxlKHQhPTApCiAgICB7CiAgICAgICAgICAgbm89MDsKICAgICAgICAgICBpPTA7CiAgICAgICAgICAgd2hpbGUoKGM9Z2V0Y2hhcigpKSE9J1xuJykKICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW2ldPWM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubz1pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtpXT0nXG4nOwogICAgIAogICAgICAgZm9yKGk9MDtpPG5vO2krKykKICAgICAgICAgIHsgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihqPWkrMTsoYVtpXT40OCAmJiBqPG5vKTtqKyspCiAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhW2ldPT1hW2pdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJbaV0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbal09NDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICB9ICAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50MT1jb3VudDI9MTsgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGk9MDsKICAgIHdoaWxlKDEpCiAgICB7CiAgICAgICAgICAgIHByaW91PTA7CiAgICAgICAgICAgIGlmKG5vPj1wcmltZVtpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICBrPW5vOwogICAgICAgICAgICB3aGlsZShrIT0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGo9ay9wcmltZVtpXTsKICAgICAgICAgICAgICAgcHJpb3U9cHJpb3UrajsKICAgICAgICAgICAgICAgaz1qOwogICAgICAgICAgICAgICB9ICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgY291bnQxPXBvdyhwcmltZVtpXSxwcmlvdSk7CiAgICAgICAgICAgICAgY291bnQxPWNvdW50Mipjb3VudDE7IAogICAgICAgICAgICBjb3VudDI9Y291bnQxJWNvdW50MzsKICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgZWxzZSBpZihubzxwcmltZVtpXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgfQogICAgICBmb3Ioaj0wO2o8bm87aisrKQogICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIGlmKGJbal0+MSkKICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgY291bnQxPWNvdW50Mi96W2Jbal1dOyAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgY291bnQyPWNvdW50MTsKICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJWxkXG4iLGNvdW50Mik7CiAgICAgICAgICAgICAgICAgICAgICAgdC0tOyAKfQpyZXR1cm4gMDsKfQo=