#include #include #include using namespace std; #define ll long long #define mod 1000000007 ll jc[1100],njc[1100]; int T; char s[1100]; int cnt[110]; ll pow(ll x,ll y) { ll ret=1; while(y) { if(y&1)ret=ret*x%mod; x=x*x%mod;y>>=1; } return ret; } int main() { //freopen("tt.in","r",stdin); scanf("%d",&T); jc[0]=1;njc[0]=1; for(int i=1;i<=1000;i++)jc[i]=(jc[i-1]*i)%mod; njc[1000]=pow(jc[1000],mod-2); for(int i=999;i>=1;i--) njc[i]=(njc[i+1]*(i+1))%mod; while(T--) { memset(cnt,0,sizeof(cnt)); scanf("%s",s+1); int len=strlen(s+1); sort(s+1,s+1+len); int flag=0; for(int i=1;i<=len;i++)cnt[s[i]-'a'+1]++; for(int i=1;i<=26;i++) if(cnt[i]&1)flag++; if(flag>1) { puts("0"); continue; } ll ans=jc[len/2]; for(int i=1;i<=26;i++) ans=(ans*njc[cnt[i]/2])%mod; printf("%I64d\n",ans); } return 0; }