#include #include #include #include #include #include using namespace std; #define ll long long struct yqh { int l,r; int sum; }a[400080]; int T,lft,rgt; char s[100020]; int n; void create(int r,int x,int y) { a[r].l = x; a[r].r = y; if(x==y) { a[r].sum = int(s[x-1])-28; return; } int mid = (x+y)>>1; create(r<<1,x,mid); create(r<<1|1,mid+1,y); a[r].sum = (a[r<<1].sum*a[r<<1|1].sum)%9973; } int query(int r) { if(lft<=a[r].l&&rgt>=a[r].r)return a[r].sum; if(lft>a[r<<1].r)return query(r<<1|1); if(rgt<=a[r<<1].r)return query(r<<1); return query(r<<1)*query(r<<1|1)%9973; } int main() { while(scanf("%d\n",&n)!=EOF) { // scanf("%d\n",&n); memset(s,0,sizeof(s)); scanf("%s",s); int x = strlen(s); create(1,1,x); for(int i=1;i<=n;++i) { scanf("%d%d\n",&lft,&rgt); cout<