#include #include #include #include #include #include #include #define MOD 9973 #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 using namespace std; char ch[100010]; int num[100010*4]; void init( int l , int r , int rt ) { if( l == r ) { num[rt] = ch[l-1] - 28; return ; } int mid = ( l + r ) / 2; init(lson); init(rson); num[rt] = num[rt<<1] * num[rt<<1|1] % MOD; return ; } int findans( int left , int right , int l , int r , int rt ) { if( r < left || right < l ) return 1; if( left <= l && r <= right ) return num[rt]; int mid = ( l + r ) / 2 , a1 = 1 , a2 = 1; if( left <= mid ) a1 = findans( left , right , lson ); if( mid < right ) a2 = findans( left , right , rson ); return a1 * a2 % MOD; } int main() { int n , a , b , mk = 0; while( scanf( "%d" , &n ) != EOF ) { scanf( "%s" , ch ); int ln = strlen(ch); init( 1 , ln , 1 ); while( n-- ) { scanf( "%d %d" , &a , &b ); if( a > b ) swap( a , b ); if( a >= 1 && a <= ln && b >=1 && b <= ln ) mk = findans( a , b , 1 , ln , 1 ); printf( "%d\n" , mk ); } } return 0; }