#include #include #include #include #define ll long long #define inf 1e9 #define eps 1e-10 #define md 9973 #define N 100010 using namespace std; int ji[4*N],a[4*N],lx[4*N],rx[4*N],mid[4*N]; char st[N]; void build(int i,int l,int r) { lx[i]=l; rx[i]=r; if (l==r) { ji[i]=a[l]; return;} mid[i]=(l+r)>>1; build(i<<1,l,mid[i]); build(i<<1|1,mid[i]+1,r); ji[i]=ji[i<<1]*ji[i<<1|1]%md; } int query(int i,int ql,int qr) { if (ql<=lx[i]&&rx[i]<=qr) return ji[i]; if (qr<=mid[i]) return query(i<<1,ql,qr); if (mid[i]+1<=ql) return query(i<<1|1,ql,qr); return query(i<<1,ql,qr)*query(i<<1|1,ql,qr)%md; } int main() { int m; while (scanf("%d",&m)!=EOF) { gets(st); gets(st+1); int n=strlen(st+1); for (int i=1;i<=n;i++) { a[i]=st[i]-28; if (a[i]<0) a[i]+=md; } build(1,1,n); for (int i=1;i<=m;i++) { int l,r; scanf("%d%d",&l,&r); if (l>r) printf("1\n"); else printf("%d\n",query(1,l,r)); } } return 0; }