#include #include #include #include #include #include #include char s[1000000]; fact(n) { int i,fact=1; for(i=1;i<=n;i++)fact=fact*i; return fact; } int answerQuery(int l, int r) { int a[26]={0},i,j,k,maxeven=0,noeven=0,noodd=0,maxodd=0,takmaxodd=0,takmaxeven=0; for(i=l-1;imaxeven)maxeven=a[i]; } if(a[i]!=0&&a[i]%2==1) { noodd++; if(a[i]>maxodd)maxodd=a[i]; } } takmaxodd=maxodd*fact(1+noeven); takmaxeven=maxeven*fact(1+noodd); if(takmaxodd>takmaxeven)return takmaxodd; else return takmaxeven; } int main() { scanf("%s", s); int q; scanf("%i", &q); for(int a0 = 0; a0 < q; a0++){ int l; int r; scanf("%i %i", &l, &r); int result = answerQuery(l, r); printf("%d\n", result); } return 0; }