#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
const int N = 1e6 + 5;
int main(){
int n, q; cin >> n >> q;
string s; cin >> s;
int sq = sqrt(n) + 1;
vector<deque<int>> a = {{}};
for (auto i : s) {
a.back().push_back(i - 'w');
if ((int) a.back().size() == sq) a.push_back({});
}
if (a.back().empty()) a.pop_back();
for (int Q = 1; Q <= q; Q++){
char t; cin >> t;
if (t == 'a'){
int u, v; cin >> u >> v;
u--, v--;
if (u == v) continue;
int sqidxu = u / sq, idxu = u % sq;
int sqidxv = v / sq, idxv = v % sq;
int x = a[sqidxu][idxu];
a[sqidxu].erase(a[sqidxu].begin() + idxu);
a[sqidxv].insert(a[sqidxv].begin() + idxv, x);
for (int i = 0; i < (int) a.size() - 1; i++){
if (a[i].size() == sq - 1){
int nxt = a[i + 1].front();
a[i + 1].pop_front();
a[i].push_back(nxt);
}
else if (a[i].size() == sq + 1){
int nxt = a[i].back();
a[i].pop_back();
a[i + 1].push_front(nxt);
}
}
}
else {
int u; cin >> u;
u--;
cout << char('w' + a[u / sq][u % sq]) << endl;
}
}
}