#pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long #define double long double #define F(x) ((x)/3+((x)%3==1?0:tb)) #define G(x) ((x)>=1; } return res; } int main() { int n; while(scanf("%d", &n) != EOF) { scanf("%s", s + 1); int m = strlen(s + 1); has[0] = 1; for(int j = 1; j <= m; j++) { has[j] = has[j - 1] * (s[j] - 28) % mod; } for(int j = 1; j <= n; j++) { int a, b; scanf("%d%d", &a, &b); int ans = has[b]*fast(has[a-1],mod-2)%mod; printf("%d\n", ans); } } return 0; }