#include #include #include #include #include #include #include int fact(int a){ int fact=1; while(a!=1) { fact*=a; a--; } return fact; } // This function is called once before all queri int main() { char s[100000]; scanf("%s", s); int q; scanf("%i", &q); for(int a0 = 0; a0 < q; a0++){ int l; int r; scanf("%i %i", &l, &r); l--; r--; int x=r-l+1; int count=0,j; int hash[27]={0}; for(int i=l;i<=r;i++) { j=s[i]; hash[j-96]++; } int flag=0; int num=1; for(int i=1;i<=26;i++) { if(hash[i]!=0&&hash[i]%2==0) { flag++; num*=flag; if(hash[i]/2>1) { num/=fact(hash[i]/2); } } } printf("%d\n",num); } return 0; }