#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cin.tie(nullptr);
int n , q; cin >> n >> q;
string s ; cin >> s;
for (int i = 0; i < q; i++)
{
string query ; cin >> query;
if(query == "pop_back")
{
s.pop_back();
}
else if (query == "front")
{
cout << s.front() << '\n';
}
else if (query == "back")
{
cout << s.back() << '\n';
}
else if (query == "sort")
{
int l , r; cin >> l >> r;
if(l > r) swap(l,r);
sort(s.begin()+l-1,s.begin()+r);
}
else if (query == "reverse")
{
int l , r; cin >> l >> r;
if(l > r) swap(l,r);
reverse(s.begin()+l-1,s.begin()+r);
}
else if (query == "print")
{
int pos; cin >> pos;
cout << s[pos-1] << '\n';
}
else if (query == "substr")
{
int l , r; cin >> l >> r;
if(l > r) swap(l,r);
cout << s.substr(l-1 , r-l+1) << '\n';
}
else
{
char x; cin >> x;
s.push_back(x);
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOwogICAgaW50IG4gLCBxOyBjaW4gPj4gbiA+PiBxOwogICAgc3RyaW5nIHMgOyBjaW4gPj4gczsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykKICAgIHsKICAgICAgICBzdHJpbmcgcXVlcnkgOyBjaW4gPj4gcXVlcnk7CiAgICAgICAgaWYocXVlcnkgPT0gInBvcF9iYWNrIikKICAgICAgICB7CiAgICAgICAgICAgIHMucG9wX2JhY2soKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gImZyb250IikKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgcy5mcm9udCgpIDw8ICdcbic7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHF1ZXJ5ID09ICJiYWNrIikKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgcy5iYWNrKCkgPDwgJ1xuJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gInNvcnQiKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGwgLCByOyBjaW4gPj4gbCA+PiByOwogICAgICAgICAgICBpZihsID4gcikgc3dhcChsLHIpOwogICAgCiAgICAgICAgICAgIHNvcnQocy5iZWdpbigpK2wtMSxzLmJlZ2luKCkrcik7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHF1ZXJ5ID09ICJyZXZlcnNlIikKICAgICAgICB7CiAgICAgICAgICAgIGludCBsICwgcjsgY2luID4+IGwgPj4gcjsKICAgICAgICAgICAgaWYobCA+IHIpIHN3YXAobCxyKTsKICAgIAogICAgICAgICAgICByZXZlcnNlKHMuYmVnaW4oKStsLTEscy5iZWdpbigpK3IpOyAKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gInByaW50IikKICAgICAgICB7CiAgICAgICAgICAgIGludCBwb3M7IGNpbiA+PiBwb3M7CiAgICAgICAgICAgIGNvdXQgPDwgc1twb3MtMV0gPDwgJ1xuJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAocXVlcnkgPT0gInN1YnN0ciIpCiAgICAgICAgewogICAgICAgICAgICBpbnQgbCAsIHI7IGNpbiA+PiBsID4+IHI7CiAgICAgICAgICAgIGlmKGwgPiByKSBzd2FwKGwscik7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb3V0IDw8IHMuc3Vic3RyKGwtMSAsIHItbCsxKSA8PCAnXG4nOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBjaGFyIHg7IGNpbiA+PiB4OwogICAgICAgICAgICBzLnB1c2hfYmFjayh4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICB9CiAgICAKfQ==