ll@n,@q; string@s; ll ax[2n+1],ay[2n+1]; ax[0]=0; ay[0]=0; rep(i,2n){ if(s[i%n]=='D'){ ax[i+1]=ax[i]+1; ay[i+1]=ay[i]; }else{ ax[i+1]=ax[i]; ay[i+1]=ay[i]+1; } } rep(q){ ll@h,@w,@p,z; if(ax[n]==0||ay[n]!=0&&h/ax[n]>w/ay[n]){ z=bsearch_min[ll,j,p,p+n](ay[j]-ay[p]>=w%ay[n]); } else if(ay[n]==0||ax[n]!=0&&h/ax[n]=h%ax[n]); } else{ z=bsearch_min[ll,j,p,p+n](ax[j]-ax[p]>=h%ax[n]||ay[j]-ay[p]>=w%ay[n]); } wt(z%n); }