#include #include #include #include #define M 100010 #define mod 9973 using namespace std; struct node { int l,r,n; } ss[M*4]; char s[M]; void build(int l,int r,int k) { ss[k].l=l; ss[k].r=r; if(l==r) { ss[k].n=s[l]-28; return ; } int mid=(l+r)/2; build(l,mid,2*k); build(mid+1,r,2*k+1); ss[k].n=ss[k*2].n*ss[k*2+1].n%mod; return ; } int ans; int search(int l,int r,int k) { if(ss[k].l>r||ss[k].r=l&&ss[k].r<=r) return ss[k].n; return search(l,r,k*2)*search(l,r,k*2+1)%mod; } int main() { int w,i,j,n,T,a,b,t; while(~scanf("%d",&n)) { scanf("%s",s+1); int len=strlen(s+1); build(1,len,1); // for(i=1; i<=len; i++) // insert((int)s[i]-28,i,1); for(i=1; i<=n; i++) { scanf("%d%d",&a,&b); if(a>b||a<1||b<1||a>len||b>len) { printf("%d\n",ans); continue; } ans=(search(a,b,1)+mod)%mod; printf("%d\n",ans); } } return 0; }