#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define up(l,r,i) for(int i=(l);i<=(r);++i)
constexpr int N=2e6+5;
ll n,m,k,a[N],s1[N],s2[N],l[N],r[N],maxodd,maxeven;
string s;
void prework(){
up(1,n,i)s1[i]=s1[i-1]+a[i];
for(int i=n;i;--i)s2[i]=s2[i+1]+a[i];
l[s1[n]]=1,r[s1[n]]=n;
ll _l=0,_r=0;
up(1,n,i)if(a[i]==1&&_l==0){_l=i;break;}
for(int i=n;i;--i)if(a[i]==1&&_r==0){_r=i;break;}
if(s1[n]%2){
maxodd=s1[n];
if(_l?s1[n]-s1[_l]:0>_r?s2[n]-s2[_r]:0){
maxeven=_l?s1[n]-s1[_l]:0;
l[maxeven]=_l+1,r[maxeven]=n;
}
else{
maxeven=_r?s2[n]-s2[_r]:0;
l[maxeven]=1,r[maxeven]=_r-1;
}
}
else{
maxeven=s1[n];
if(_l?s1[n]-s1[_l]:0>_r?s2[n]-s2[_r]:0){
maxodd=_l?s1[n]-s1[_l]:0;
l[maxodd]=_l+1,r[maxodd]=n;
}
else{
maxodd=_r?s2[n]-s2[_r]:0;
l[maxodd]=1,r[maxodd]=_r-1;
}
}
while(maxeven>0){
ll qwq=maxeven-2;
if(a[l[maxeven]]==1&&a[r[maxeven]]==1)l[qwq]=l[maxeven]+1,r[qwq]=r[maxeven]-1;
else if(a[l[maxeven]]==2)l[qwq]=l[maxeven]+1,r[qwq]=r[maxeven];
else l[qwq]=l[maxeven],r[qwq]=r[maxeven]-1;
maxeven-=2;
}
while(maxodd>0){
ll qwq=maxodd-2;
if(a[l[maxodd]]==1&&a[r[maxodd]]==1)l[qwq]=l[maxodd]+1,r[qwq]=r[maxodd]-1;
else if(a[l[maxodd]]==2)l[qwq]=l[maxodd]+1,r[qwq]=r[maxodd];
else l[qwq]=l[maxodd],r[qwq]=r[maxodd]-1;
maxodd-=2;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(nullptr);
cin>>n>>m>>s;
up(1,n,i)a[i]=1+(s[i-1]=='T');
prework();
while(m--){
cin>>k;
if(l[k]==0){
cout<<"NIE\n";
continue;
}
cout<<l[k]<<' '<<r[k]<<'\n';
}
}