#include #include #include #include #include #include #include /* void initialize(char* s) { // This function is called once before all queries. }*/ char* s; int answerQuery(int l, int r) { // Return the answer for this query modulo 1000000007. int alpha[26],i,sum=0; for(i=0;i<26;i++) alpha[i] = 0; for(i=l;i<=r;i++){ alpha[s[i]-97]++; } for(i=0;i<26;i++){ if(alpha[i]%2 == 0) sum+=alpha[i]/2; } return pow(2,sum); } int main() { s = (char *)malloc(512000 * sizeof(char)); scanf("%s", s); //initialize(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; }