#include #include #include using namespace std; char s[100005]; int res[100005]; int ans[100005]; int quick_pow(int a,int n,int Mod) { int res=1; while(n) { if(n&1) //相当n%2==1 res=(res*a)%Mod; n>>=1; //往右移一位 相当于除以2 a=a*a%Mod; } return res; } int main() { int t; while(~scanf("%d",&t)) { scanf("%s",s); res[0]=1; ans[0]=1; for(int i=0;s[i]!='\0';i++) { res[i+1]=(res[i]*(s[i]-28))%9973; ans[i+1]=quick_pow(res[i+1],9971,9973); } while(t--) { int l,r; scanf("%d%d",&l,&r); if(l>r){int t=l;l=r;r=t;} printf("%d\n",(res[r]*ans[l-1])%9973); } } return 0; }