#include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
#define el endl
#define nl '\n'
using namespace std;
void input()
{
if (fopen("in.txt", "r"))
{
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
}
}
int a, b, c;
int trip(int a, int b, int c)
{
return a * b * c;
}
int main()
{
Fast:
input();
//---------------------------------" " UPSOLVE---------------------------------------------------------------
int n, q;
cin >> n >> q;
string s;
cin >> s;
while (q--)
{
string t;
cin >> t;
if (t == "pop_back")
s.pop_back();
else if (t == "front")
cout << s.front() << el;
else if (t == "back")
cout << s.back() << el;
else if (t == "sort")
{
int l, r;
cin >> l >> r;
l--;
r--;
sort(s.begin() + l, s.begin() + r + 1);
}
else if (t == "reverse")
{
int l, r;
cin >> l >> r;
l--;
r--;
reverse(s.begin() + l, s.begin() + r + 1);
}
else if (t == "print")
{
int pos;
cin >> pos;
pos--;
cout << s[pos] << el;
}
else if (t == "substr")
{
int l, r;
cin >> l >> r;
l--;
r--;
cout << s.substr(l, r - l + 1) << el;
}
else if (t == "push_back")
{
char x;
cin >> x;
s.push_back(x);
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGVuZGwKI2RlZmluZSBubCAnXG4nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgaW5wdXQoKQp7CiAgICBpZiAoZm9wZW4oImluLnR4dCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiaW4udHh0IiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbigib3V0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KfQoKaW50IGEsIGIsIGM7CgppbnQgdHJpcChpbnQgYSwgaW50IGIsIGludCBjKQp7CiAgICByZXR1cm4gYSAqIGIgKiBjOwp9CmludCBtYWluKCkKewpGYXN0OgogICAgaW5wdXQoKTsKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAiIFVQU09MVkUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICBpbnQgbiwgcTsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOwoKICAgIHdoaWxlIChxLS0pCiAgICB7CiAgICAgICAgc3RyaW5nIHQ7CiAgICAgICAgY2luID4+IHQ7CgogICAgICAgIGlmICh0ID09ICJwb3BfYmFjayIpCiAgICAgICAgICAgIHMucG9wX2JhY2soKTsKCiAgICAgICAgZWxzZSBpZiAodCA9PSAiZnJvbnQiKQogICAgICAgICAgICBjb3V0IDw8IHMuZnJvbnQoKSA8PCBlbDsKCiAgICAgICAgZWxzZSBpZiAodCA9PSAiYmFjayIpCiAgICAgICAgICAgIGNvdXQgPDwgcy5iYWNrKCkgPDwgZWw7CgogICAgICAgIGVsc2UgaWYgKHQgPT0gInNvcnQiKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGwsIHI7CiAgICAgICAgICAgIGNpbiA+PiBsID4+IHI7CiAgICAgICAgICAgIGwtLTsKICAgICAgICAgICAgci0tOwogICAgICAgICAgICBzb3J0KHMuYmVnaW4oKSArIGwsIHMuYmVnaW4oKSArIHIgKyAxKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAodCA9PSAicmV2ZXJzZSIpCiAgICAgICAgewogICAgICAgICAgICBpbnQgbCwgcjsKICAgICAgICAgICAgY2luID4+IGwgPj4gcjsKICAgICAgICAgICAgbC0tOwogICAgICAgICAgICByLS07CiAgICAgICAgICAgIHJldmVyc2Uocy5iZWdpbigpICsgbCwgcy5iZWdpbigpICsgciArIDEpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh0ID09ICJwcmludCIpCiAgICAgICAgewogICAgICAgICAgICBpbnQgcG9zOwogICAgICAgICAgICBjaW4gPj4gcG9zOwogICAgICAgICAgICBwb3MtLTsKICAgICAgICAgICAgY291dCA8PCBzW3Bvc10gPDwgZWw7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHQgPT0gInN1YnN0ciIpCiAgICAgICAgewogICAgICAgICAgICBpbnQgbCwgcjsKICAgICAgICAgICAgY2luID4+IGwgPj4gcjsKICAgICAgICAgICAgbC0tOwogICAgICAgICAgICByLS07CiAgICAgICAgICAgIGNvdXQgPDwgcy5zdWJzdHIobCwgciAtIGwgKyAxKSA8PCBlbDsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAodCA9PSAicHVzaF9iYWNrIikKICAgICAgICB7CiAgICAgICAgICAgIGNoYXIgeDsKICAgICAgICAgICAgY2luID4+IHg7CiAgICAgICAgICAgIHMucHVzaF9iYWNrKHgpOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMDsKfQo=