#include<bits/stdc++.h>
using namespace std;
#define ll long long
std::mt19937_64 rnd(std::chrono::system_clock::now().time_since_epoch().count());
struct Treap{
struct Node{
char key=0;
int rev=0,pri=rnd(),sz=1;
array<Node*,2>c={0,0};
Node(){}
Node(char k){
key=k;
}
};
Node*root=0;
int getSize(Node*t)
{
return t?t->sz:0;
}
Treap(string&s)
{
for(int i=0;i<s.size();i++)
{
root=merge(root,new Node(s[i]));
}
}
Node*fix(Node*t)
{
t->sz=getSize(t->c[0])+getSize(t->c[1])+1;
return t;
}
void propegate(Node*t)
{
if(!t||!t->rev) return;
swap(t->c[0],t->c[1]);
if(t->c[0]) t->c[0]->rev^=1;
if(t->c[1]) t->c[1]->rev^=1;
t->rev=0;
}
array<Node*,2>split(Node*t,int k)
{
if(!t) return {0,0};
propegate(t);
if(getSize(t->c[0])>=k)
{
auto ret=split(t->c[0],k);
t->c[0]=ret[1];
return {ret[0],fix(t)};
}
else
{
auto ret=split(t->c[1],k-getSize(t->c[0])-1);
t->c[1]=ret[0];
return {fix(t),ret[1]};
}
}
Node*merge(Node*u,Node*v)
{
propegate(u);
propegate(v);
if(!u||!v) return u?u:v;
if(u->pri>v->pri)
{
u->c[1]=merge(u->c[1],v);
return fix(u);
}
else
{
v->c[0]=merge(u,v->c[0]);
return fix(v);
}
}
void reverse(int l,int r)
{
auto a=split(root,l-1);
auto b=split(a[1],r-l+1);
b[0]->rev^=1;
root=merge(a[0],merge(b[0],b[1]));
}
char getChar(int idx)
{
auto a=split(root,idx-1);
auto b=split(a[1],1);
propegate(b[0]);
char ret=b[0]->key;
merge(a[0],merge(b[0],b[1]));
return ret;
}
void print(Node*t)
{
if(!t) return;
print(t->c[0]);
cout<<t->key<<' ';
print(t->c[1]);
}
};
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,l,r;string s;cin>>n>>l>>r>>s;
Treap t(s);
int q;cin>>q;while(q--)
{
char op;cin>>op;
if(op=='S')
{
char a,b;cin>>a>>b;
if(a=='R')
{
if(b=='L')
{
r--;
}
else
{
r++;
}
}
else
{
if(b=='L')
{
l--;
}
else
{
l++;
}
}
}
else if(op=='R')
{
t.reverse(l,r);
}
else
{
char x;cin>>x;
if(x=='R')
{
cout<<t.getChar(r);
}
else
{
cout<<t.getChar(l);
}
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKc3RkOjptdDE5OTM3XzY0IHJuZChzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CnN0cnVjdCBUcmVhcHsKICAgIHN0cnVjdCBOb2RlewogICAgICAgIGNoYXIga2V5PTA7CiAgICAgICAgaW50IHJldj0wLHByaT1ybmQoKSxzej0xOwogICAgICAgIGFycmF5PE5vZGUqLDI+Yz17MCwwfTsKICAgICAgICBOb2RlKCl7fQogICAgICAgIE5vZGUoY2hhciBrKXsKICAgICAgICAgICAga2V5PWs7CiAgICAgICAgfQogICAgfTsKICAgIE5vZGUqcm9vdD0wOwogICAgaW50IGdldFNpemUoTm9kZSp0KQogICAgewogICAgICAgIHJldHVybiB0P3QtPnN6OjA7CiAgICB9CiAgICBUcmVhcChzdHJpbmcmcykKICAgIHsKICAgICAgICBmb3IoaW50IGk9MDtpPHMuc2l6ZSgpO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHJvb3Q9bWVyZ2Uocm9vdCxuZXcgTm9kZShzW2ldKSk7CiAgICAgICAgfQogICAgfQogICAgTm9kZSpmaXgoTm9kZSp0KQogICAgewogICAgICAgIHQtPnN6PWdldFNpemUodC0+Y1swXSkrZ2V0U2l6ZSh0LT5jWzFdKSsxOwogICAgICAgIHJldHVybiB0OwogICAgfQogICAgdm9pZCBwcm9wZWdhdGUoTm9kZSp0KQogICAgewogICAgICAgIGlmKCF0fHwhdC0+cmV2KSByZXR1cm47CiAgICAgICAgc3dhcCh0LT5jWzBdLHQtPmNbMV0pOwogICAgICAgIGlmKHQtPmNbMF0pIHQtPmNbMF0tPnJldl49MTsKICAgICAgICBpZih0LT5jWzFdKSB0LT5jWzFdLT5yZXZePTE7CiAgICAgICAgdC0+cmV2PTA7CiAgICB9CiAgICBhcnJheTxOb2RlKiwyPnNwbGl0KE5vZGUqdCxpbnQgaykKICAgIHsKICAgICAgICBpZighdCkgcmV0dXJuIHswLDB9OwogICAgICAgIHByb3BlZ2F0ZSh0KTsKICAgICAgICBpZihnZXRTaXplKHQtPmNbMF0pPj1rKQogICAgICAgIHsKICAgICAgICAgICAgYXV0byByZXQ9c3BsaXQodC0+Y1swXSxrKTsKICAgICAgICAgICAgdC0+Y1swXT1yZXRbMV07CiAgICAgICAgICAgIHJldHVybiB7cmV0WzBdLGZpeCh0KX07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGF1dG8gcmV0PXNwbGl0KHQtPmNbMV0say1nZXRTaXplKHQtPmNbMF0pLTEpOwogICAgICAgICAgICB0LT5jWzFdPXJldFswXTsKICAgICAgICAgICAgcmV0dXJuIHtmaXgodCkscmV0WzFdfTsKICAgICAgICB9CiAgICB9CiAgICBOb2RlKm1lcmdlKE5vZGUqdSxOb2RlKnYpCiAgICB7CiAgICAgICAgcHJvcGVnYXRlKHUpOwogICAgICAgIHByb3BlZ2F0ZSh2KTsKICAgICAgICBpZighdXx8IXYpIHJldHVybiB1P3U6djsKICAgICAgICBpZih1LT5wcmk+di0+cHJpKQogICAgICAgIHsKICAgICAgICAgICAgdS0+Y1sxXT1tZXJnZSh1LT5jWzFdLHYpOwogICAgICAgICAgICByZXR1cm4gZml4KHUpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICB2LT5jWzBdPW1lcmdlKHUsdi0+Y1swXSk7CiAgICAgICAgICAgIHJldHVybiBmaXgodik7CiAgICAgICAgfQogICAgfQogICAgdm9pZCByZXZlcnNlKGludCBsLGludCByKQogICAgewogICAgICAgIGF1dG8gYT1zcGxpdChyb290LGwtMSk7CiAgICAgICAgYXV0byBiPXNwbGl0KGFbMV0sci1sKzEpOwogICAgICAgIGJbMF0tPnJldl49MTsKICAgICAgICByb290PW1lcmdlKGFbMF0sbWVyZ2UoYlswXSxiWzFdKSk7CiAgICB9CiAgICBjaGFyIGdldENoYXIoaW50IGlkeCkKICAgIHsKICAgICAgICBhdXRvIGE9c3BsaXQocm9vdCxpZHgtMSk7CiAgICAgICAgYXV0byBiPXNwbGl0KGFbMV0sMSk7CiAgICAgICAgcHJvcGVnYXRlKGJbMF0pOwogICAgICAgIGNoYXIgcmV0PWJbMF0tPmtleTsKICAgICAgICBtZXJnZShhWzBdLG1lcmdlKGJbMF0sYlsxXSkpOwogICAgICAgIHJldHVybiByZXQ7CiAgICB9CiAgICB2b2lkIHByaW50KE5vZGUqdCkKICAgIHsKICAgICAgICBpZighdCkgcmV0dXJuOwogICAgICAgIHByaW50KHQtPmNbMF0pOwogICAgICAgIGNvdXQ8PHQtPmtleTw8JyAnOwogICAgICAgIHByaW50KHQtPmNbMV0pOwogICAgfQp9OwpzaWduZWQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGludCBuLGwscjtzdHJpbmcgcztjaW4+Pm4+Pmw+PnI+PnM7CiAgICBUcmVhcCB0KHMpOwogICAgaW50IHE7Y2luPj5xO3doaWxlKHEtLSkKICAgIHsKICAgICAgICBjaGFyIG9wO2Npbj4+b3A7CiAgICAgICAgaWYob3A9PSdTJykKICAgICAgICB7CiAgICAgICAgICAgIGNoYXIgYSxiO2Npbj4+YT4+YjsKICAgICAgICAgICAgaWYoYT09J1InKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihiPT0nTCcpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgci0tOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHIrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGI9PSdMJykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBsLS07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYob3A9PSdSJykKICAgICAgICB7CiAgICAgICAgICAgIHQucmV2ZXJzZShsLHIpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBjaGFyIHg7Y2luPj54OwogICAgICAgICAgICBpZih4PT0nUicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PHQuZ2V0Q2hhcihyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PHQuZ2V0Q2hhcihsKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9