#include #include #include #include #include #include #include #include #include #include using namespace std; #include #include #include #include #include #include const int maxn=101010; char ss[101010]; int mod=9973; int sum[maxn*4]; int ji; void up(int rt) { sum[rt]=sum[rt<<1]*sum[rt<<1|1]; sum[rt]%=mod; } void build(int l,int r,int rt) { if(l==r) { sum[rt]=(ss[ji++]-28); return; } int mid=(l+r)>>1; build(l,mid,rt<<1); build(mid+1,r,rt<<1|1); up(rt); } int qur(int L,int R,int l,int r,int rt) { if(L<=l&&R>=r) return sum[rt]; int mid=(l+r)>>1; int sum=0; if(L<=mid) { sum=qur(L,R,l,mid,rt<<1); if(R>mid) sum*=qur(L,R,mid+1,r,rt<<1|1); } else sum=qur(L,R,mid+1,r,rt<<1|1); return sum%mod; } int main() { int n; while(scanf("%d",&n)!=EOF) { ji=0; scanf("%s",ss); int len=strlen(ss); build(1,len,1); for(int i=0;i>a>>b; /*int aa=0; for(int j=a-1;j