#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long gcd(long long a,long long mod,long long& x, long long& y){ if(!mod){ x=1; y=0; return a; } long long ans=gcd(mod,a%mod,x,y); long long t=x; x=y; y=t-a/mod*y; return ans; } const long long mod=1000000007; long long a[30]; long long su(long long sum){ long long ans=1; for(long long i=2;i<=sum;i++) ans=ans*i%mod; return ans; } int main(){ long long t; scanf("%I64d",&t); while(t--){ memset(a,0,sizeof(a)); char s[1050]; scanf("%s",s); long long len=strlen(s); for(long long i=0;i1){ puts("0"); continue; } long long sum=0; long long x,y; for(long long i=0;i<26;i++){ a[i]/=2; sum+=a[i]; if(a[i]!=0){ a[i]=su(a[i]); gcd(a[i],mod,x,y); if(x<0)x+=mod; a[i]=x; } } long long ans=1; for(long long i=2;i<=sum;i++) ans=ans*i%mod; for(long long i=0;i<26;i++){ if(a[i]!=0) ans=ans*a[i]%mod; } printf("%I64d\n",ans%mod); } return 0; }