#include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f #define eps 1e-8 typedef long long LL; const int MOD = 9973; int ans[400005], n, a, b, len; char s[100010]; void BuildTree(int n, int left, int right) { if (left == right) { ans[n] = s[left-1] - 28; return; } int mid = (left+right) >> 1; BuildTree(n<<1, left, mid); BuildTree(n<<1|1, mid+1, right); ans[n] = ans[n<<1] * ans[n<<1|1] % MOD; } int Query(int L, int R, int n, int left, int right) { if (L <= left && right <= R) return ans[n]; int mid = (left+right) >> 1; int res = 1; if (L <= mid) res = res * Query(L, R, n<<1, left, mid) % MOD; if (R > mid) res = res * Query(L, R, n<<1|1, mid+1, right) % MOD; return res; } int main() { while (scanf("%d", &n) != EOF) { scanf("%s", s); len = strlen(s); BuildTree(1, 1, len); while (n--) { scanf("%d%d", &a, &b); printf("%d\n", Query(a, b, 1, 1, len)); } } return 0; }