#include #include #include #include const int maxn = 1005; const long long Mod = 1000000007; void Find(int n, int buf[]) { if(n == 1) return ; for(int i=2; n != 1; i++) { while(n % i == 0) { buf[i]++; n /= i; } } } int main() { int T; scanf("%d", &T); while(T--) { char s[maxn]; int mum[maxn]={0}, son[maxn]={0}, a[26]={0}; scanf("%s", s); for(int i=0; s[i]; i++) { a[ s[i]-'a' ]++; } int odd=0, M=0; for(int i=0; i<26; i++) { if(a[i] % 2) odd++; M += a[i] / 2; } if(odd > 1) printf("0\n"); else { for(int i=2; i<=M; i++) Find(i, mum); for(int i=0; i<26; i++) for(int j=2; j<=a[i]/2;j++) Find(j, son); long long ans = 1; for(int i=2; i