#include #include const int MAX=100005,mod=9973; int num[MAX],ans; struct node { int l,r,value; } tree[MAX*4]; void build(int k,int l,int r) { tree[k].l=l; tree[k].r=r; if(l==r) { tree[k].value=num[l]; return ; } int mid=(l+r)/2; build(k*2,l,mid); build(k*2+1,mid+1,r); tree[k].value=tree[k*2].value*tree[k*2+1].value%mod; } void query(int k,int l,int r) { if(tree[k].l==l&&tree[k].r==r) { ans=(ans*tree[k].value)%mod; return ; } int mid=(tree[k].l+tree[k].r)/2; if(r<=mid)query(k*2,l,r); else { if(l>mid) query(k*2+1,l,r); else { query(k*2,l,mid); query(k*2+1,mid+1,r); } } //tree[k].value=tree[k*2].value+tree[k*2+1].value; } int main() { int t; while(~scanf("%d",&t)) { char str[100005]; scanf("%s",str); int l=strlen(str); for(int i=0; i