#include #include int fac(int n) { int i,ans=1; for(i=1;i<=n;i++) ans=ans*i; return ans; } int main() { char arr[23323]; scanf("%s",arr); int q,i; scanf("%d",&q); for(i=1;i<=q;i++) { int l,j,r; scanf("%d%d",&l,&r); int a[26]; for(j=0;j<26;j++) a[j]=0; for(j=l;j<=r;j++) { int temp=arr[j]; temp=temp-97; a[temp]++; } int no=0,ne=0,qqq=0; for(j=0;j<26;j++) { if(a[j]%2==0) ne++; else no++; } for(j=0;j<26;j++) { qqq+=a[j]/2; } if(no!=0) { int p=fac(qqq)*no; for(j=0;j<26;j++) { int yy=a[j]/2; p=p/fac(a[j]/2); } printf("%d\n",p); } } return 0; }