#include #include #include using namespace std; #define MAXL 100010 #define MOD 9973 char str[MAXL]; int dp[MAXL]; void init() { dp[0] = 1; for (int i = 1; str[i] != '\0'; ++i) { dp[i] = (dp[i-1]*((int)str[i]-28))%MOD; } } int quickPow(int a, int n) { int b = 1; while (n) { if (n&1) { b = (b*a)%MOD; } a = (a*a)%MOD; n>>=1; } return b; } int main() { int n; int a, b; while (~scanf("%d", &n)) { scanf (" %s", str+1); init(); while (n--) { scanf ("%d%d", &a, &b); if (a > b)swap(a, b); printf("%d\n", (dp[b]*quickPow(dp[a-1], MOD-2))%MOD); } } }