#include<bits/stdc++.h>
using namespace std;
int main(){
// write your code here
int n,q;
cin>>n>>q;
string s;
cin>>s;
while(q--){
string c;
cin>>c;
if(c=="pop_back"){
int len = s.length();
if(len > 0)
s.pop_back();
// cout<<c<<" "<<s<<endl;
}
else if(c=="front"){
// cout<<c<<" "<<s<<endl;
if(s.size() > 0)cout<<*s.begin()<<endl;
}
else if(c=="back"){
int len = s.length();
//cout<<c<<" "<<s<<endl;
if(s.size() > 0) cout<<s.back()<<endl;
}
else if(c=="sort"){
int l1,r1, l, r; cin>>l1>>r1;
l = min(l1, r1);
r = max(l1, r1);
sort(s.begin()+l-1,s.begin()+r);
// cout<<c<<" "<<s<<endl;
}
else if(c=="reverse"){
int l,r,l1, r1; cin>>l1>>r1;
l = min(l1, r1);
r = max(l1, r1);
reverse(s.begin()+l-1,s.begin()+r);
// cout<<c<<" "<<s<<endl;
}
else if(c=="print"){
int pos; cin>>pos;
// cout<<c<<" "<<s<<endl;
if(pos > 0 && pos <= s.size())
cout<<s[pos-1]<<endl;
}
else if(c=="substr"){
int l1,r1, l, r; cin>>l1>>r1;
l = min(l1, r1);
r = max(l1, r1);
//cout<<c<<" "<<s<<endl;
for(int i = l - 1; i < r; i++){
cout<<s[i];
}
cout<<"\n";
}
else if(c=="push_back"){
char x; cin>>x;
// cout<<c<<" "<<x<<" "<<s<<endl;
s.push_back(x);
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CiAgIC8vIHdyaXRlIHlvdXIgY29kZSBoZXJlCiAgICBpbnQgbixxOwogICAgY2luPj5uPj5xOwogICAgc3RyaW5nIHM7CiAgICBjaW4+PnM7CiAgICB3aGlsZShxLS0pewogICAgICAgc3RyaW5nIGM7CiAgICAgICAgY2luPj5jOwogICAgICAgIGlmKGM9PSJwb3BfYmFjayIpewogICAgICAgICAgICBpbnQgbGVuID0gcy5sZW5ndGgoKTsKICAgICAgICAgICAgaWYobGVuID4gMCkKICAgICAgICAgICAgICAgIHMucG9wX2JhY2soKTsKICAgICAgICAgICAvLyBjb3V0PDxjPDwiICI8PHM8PGVuZGw7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYz09ImZyb250Iil7CiAgICAgICAgICAgLy8gY291dDw8Yzw8IiAiPDxzPDxlbmRsOwogICAgICAgICAgICBpZihzLnNpemUoKSA+IDApY291dDw8KnMuYmVnaW4oKTw8ZW5kbDsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjPT0iYmFjayIpewogICAgICAgICAgICBpbnQgbGVuID0gcy5sZW5ndGgoKTsKICAgICAgICAgICAgLy9jb3V0PDxjPDwiICI8PHM8PGVuZGw7CiAgICAgICAgICAgIGlmKHMuc2l6ZSgpID4gMCkgY291dDw8cy5iYWNrKCk8PGVuZGw7CiAgICAKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjPT0ic29ydCIpewogICAgICAgICAgICBpbnQgbDEscjEsIGwsIHI7IGNpbj4+bDE+PnIxOwogICAgICAgICAgICBsID0gbWluKGwxLCByMSk7CiAgICAgICAgICAgIHIgPSBtYXgobDEsIHIxKTsKICAgICAgICAgICAgc29ydChzLmJlZ2luKCkrbC0xLHMuYmVnaW4oKStyKTsKICAgICAgICAgICAvLyBjb3V0PDxjPDwiICI8PHM8PGVuZGw7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYz09InJldmVyc2UiKXsKICAgICAgICAgICAgaW50IGwscixsMSwgcjE7IGNpbj4+bDE+PnIxOwogICAgICAgICAgICBsID0gbWluKGwxLCByMSk7CiAgICAgICAgICAgIHIgPSBtYXgobDEsIHIxKTsKICAgICAgICAgICAgcmV2ZXJzZShzLmJlZ2luKCkrbC0xLHMuYmVnaW4oKStyKTsKICAgICAgICAgICAvLyBjb3V0PDxjPDwiICI8PHM8PGVuZGw7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYz09InByaW50Iil7CiAgICAgICAgICAgIGludCBwb3M7IGNpbj4+cG9zOwogICAgICAgICAgIC8vIGNvdXQ8PGM8PCIgIjw8czw8ZW5kbDsKICAgICAgICAgICAgaWYocG9zID4gMCAmJiBwb3MgPD0gcy5zaXplKCkpCiAgICAgICAgICAgIGNvdXQ8PHNbcG9zLTFdPDxlbmRsOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGM9PSJzdWJzdHIiKXsKICAgICAgICAgICAgaW50IGwxLHIxLCBsLCByOyBjaW4+PmwxPj5yMTsKICAgICAgICAgICAgbCA9IG1pbihsMSwgcjEpOwogICAgICAgICAgICByID0gbWF4KGwxLCByMSk7CiAgICAgICAgICAgIC8vY291dDw8Yzw8IiAiPDxzPDxlbmRsOwogICAgICAgICAgICBmb3IoaW50IGkgPSBsIC0gMTsgaSA8IHI7IGkrKyl7CiAgICAgICAgICAgICAgICBjb3V0PDxzW2ldOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PCJcbiI7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYz09InB1c2hfYmFjayIpewogICAgICAgICAgIGNoYXIgeDsgY2luPj54OwogICAgICAgICAgIC8vIGNvdXQ8PGM8PCIgIjw8eDw8IiAiPDxzPDxlbmRsOwogICAgICAgICAgIHMucHVzaF9iYWNrKHgpOwogICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgCiAgICB9CiAgICByZXR1cm4gMDsKfQ==