#pragma warning(disable:4786)
#pragma warning(disable:4996)
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/trie_policy.hpp>
#include<ext/pb_ds/detail/standard_policies.hpp>
#include <ext/rope>
#define pii pair<int,int>
#define pll pair<long long ,long long>
#define pli pair<long long , int>
#define pil pair<int ,long long>
#define pi acos(-1)
#define pb push_back
#define mkp make_pair
#define all(a) a.begin(), a.end()
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define MAX 300005
#define INF 0x3f3f3f3f
template <class T> inline T bigmod(T p,T e,T M){ll ret = 1LL;for(; e > 0LL; e >>= 1LL){if(e & 1LL) ret = (ret * p) % M;p = (p * p) % M;}return (T)ret;}
template <class T> inline T modinverse(T a,T M){return bigmod(a,M-2,M);} // M is prime}
using namespace std;
using namespace __gnu_pbds;
using namespace __gnu_cxx;
typedef trie<string,null_type,trie_string_access_traits<>,pat_trie_tag,trie_prefix_search_node_update>pref_trie;
typedef tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;
typedef tree<pair<int, int>,null_type,less<pair<int, int>>,rb_tree_tag,tree_order_statistics_node_update> ordered_multiset;
int main(){
IOS
//freopen("output.txt","w",stdout);
string s;
cin>>s;
string t(s.rbegin(),s.rend());
rope<char>rop,rop2;
for(int i=0;i<s.length();i++){
rop.pb(s[i]);
rop2.pb(t[i]);
}
int q;
cin>>q;
for(int tt=0;tt<q;tt++){
int type;
cin>>type;
if(type==1){
int x,y;
cin>>x>>y;
if(x>y)swap(x,y);
if(x==0 && y==s.length()-1)continue;
auto temp = rop.substr(x,y-x+1);
rop.erase(x,y-x+1);
x = s.length()-x-1;
y = s.length()-y-1;
if(x<y)swap(x,y);
auto temp2 = rop2.substr(y,x-y+1);
rop2.erase(y,x-y+1);
rop.insert(rop.mutable_begin(),temp2);
rop2.insert(rop2.mutable_end(),temp);
}
else if(type==2){
int x,y;
cin>>x>>y;
if(x>y)swap(x,y);
if(x==0 && y==s.length()-1)continue;
auto temp = rop.substr(x,y-x+1);
rop.erase(x,y-x+1);
x = s.length()-x-1;
y = s.length()-y-1;
if(x<y)swap(x,y);
auto temp2 = rop2.substr(y,x-y+1);
rop2.erase(y,x-y+1);
rop.insert(rop.mutable_end(),temp2);
rop2.insert(rop2.mutable_begin(),temp);
}
else{
int y;
cin>>y;
cout<<rop[y]<<"\n";
}
}
}
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDc4NikKI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDk5NikKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyaWVfcG9saWN5LmhwcD4KI2luY2x1ZGU8ZXh0L3BiX2RzL2RldGFpbC9zdGFuZGFyZF9wb2xpY2llcy5ocHA+CiNpbmNsdWRlIDxleHQvcm9wZT4KI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBsbCBwYWlyPGxvbmcgbG9uZyAsbG9uZyBsb25nPgojZGVmaW5lIHBsaSBwYWlyPGxvbmcgbG9uZyAsIGludD4KI2RlZmluZSBwaWwgcGFpcjxpbnQgLGxvbmcgbG9uZz4KI2RlZmluZSBwaSBhY29zKC0xKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1rcCBtYWtlX3BhaXIKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgSU9TIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBNQVggMzAwMDA1CiNkZWZpbmUgSU5GIDB4M2YzZjNmM2YKdGVtcGxhdGUgPGNsYXNzIFQ+IGlubGluZSBUIGJpZ21vZChUIHAsVCBlLFQgTSl7bGwgcmV0ID0gMUxMO2Zvcig7IGUgPiAwTEw7IGUgPj49IDFMTCl7aWYoZSAmIDFMTCkgcmV0ID0gKHJldCAqIHApICUgTTtwID0gKHAgKiBwKSAlIE07fXJldHVybiAoVClyZXQ7fQp0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIFQgbW9kaW52ZXJzZShUIGEsVCBNKXtyZXR1cm4gYmlnbW9kKGEsTS0yLE0pO30gICAvLyBNIGlzIHByaW1lfQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9jeHg7Cgp0eXBlZGVmIHRyaWU8c3RyaW5nLG51bGxfdHlwZSx0cmllX3N0cmluZ19hY2Nlc3NfdHJhaXRzPD4scGF0X3RyaWVfdGFnLHRyaWVfcHJlZml4X3NlYXJjaF9ub2RlX3VwZGF0ZT5wcmVmX3RyaWU7CnR5cGVkZWYgdHJlZTxsbCxudWxsX3R5cGUsbGVzczxsbD4scmJfdHJlZV90YWcsdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPm9yZGVyZWRfc2V0Owp0eXBlZGVmIHRyZWU8cGFpcjxpbnQsIGludD4sbnVsbF90eXBlLGxlc3M8cGFpcjxpbnQsIGludD4+LHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gb3JkZXJlZF9tdWx0aXNldDsKCgoKCmludCBtYWluKCl7CiAgICBJT1MKICAgIC8vZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiAgICBzdHJpbmcgczsKICAgIGNpbj4+czsKICAgIHN0cmluZyB0KHMucmJlZ2luKCkscy5yZW5kKCkpOwogICAgcm9wZTxjaGFyPnJvcCxyb3AyOwoKICAgIGZvcihpbnQgaT0wO2k8cy5sZW5ndGgoKTtpKyspewogICAgICAgIHJvcC5wYihzW2ldKTsKICAgICAgICByb3AyLnBiKHRbaV0pOwogICAgfQoKICAgIGludCBxOwogICAgY2luPj5xOwoKICAgIGZvcihpbnQgdHQ9MDt0dDxxO3R0KyspewoKICAgICAgICBpbnQgdHlwZTsKICAgICAgICBjaW4+PnR5cGU7CiAgICAgICAgaWYodHlwZT09MSl7CiAgICAgICAgICAgIGludCB4LHk7CiAgICAgICAgICAgIGNpbj4+eD4+eTsKICAgICAgICAgICAgaWYoeD55KXN3YXAoeCx5KTsKICAgICAgICAgICAgaWYoeD09MCAmJiB5PT1zLmxlbmd0aCgpLTEpY29udGludWU7CiAgICAgICAgICAgIGF1dG8gdGVtcCA9IHJvcC5zdWJzdHIoeCx5LXgrMSk7CiAgICAgICAgICAgIHJvcC5lcmFzZSh4LHkteCsxKTsKCiAgICAgICAgICAgIHggPSBzLmxlbmd0aCgpLXgtMTsKICAgICAgICAgICAgeSA9IHMubGVuZ3RoKCkteS0xOwogICAgICAgICAgICBpZih4PHkpc3dhcCh4LHkpOwogICAgICAgICAgICBhdXRvIHRlbXAyID0gcm9wMi5zdWJzdHIoeSx4LXkrMSk7CiAgICAgICAgICAgIHJvcDIuZXJhc2UoeSx4LXkrMSk7CgogICAgICAgICAgICByb3AuaW5zZXJ0KHJvcC5tdXRhYmxlX2JlZ2luKCksdGVtcDIpOwogICAgICAgICAgICByb3AyLmluc2VydChyb3AyLm11dGFibGVfZW5kKCksdGVtcCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYodHlwZT09Mil7CiAgICAgICAgICAgIGludCB4LHk7CiAgICAgICAgICAgIGNpbj4+eD4+eTsKICAgICAgICAgICAgaWYoeD55KXN3YXAoeCx5KTsKICAgICAgICAgICAgaWYoeD09MCAmJiB5PT1zLmxlbmd0aCgpLTEpY29udGludWU7CiAgICAgICAgICAgIGF1dG8gdGVtcCA9IHJvcC5zdWJzdHIoeCx5LXgrMSk7CiAgICAgICAgICAgIHJvcC5lcmFzZSh4LHkteCsxKTsKCiAgICAgICAgICAgIHggPSBzLmxlbmd0aCgpLXgtMTsKICAgICAgICAgICAgeSA9IHMubGVuZ3RoKCkteS0xOwogICAgICAgICAgICBpZih4PHkpc3dhcCh4LHkpOwogICAgICAgICAgICBhdXRvIHRlbXAyID0gcm9wMi5zdWJzdHIoeSx4LXkrMSk7CiAgICAgICAgICAgIHJvcDIuZXJhc2UoeSx4LXkrMSk7CgogICAgICAgICAgICByb3AuaW5zZXJ0KHJvcC5tdXRhYmxlX2VuZCgpLHRlbXAyKTsKICAgICAgICAgICAgcm9wMi5pbnNlcnQocm9wMi5tdXRhYmxlX2JlZ2luKCksdGVtcCk7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGludCB5OwogICAgICAgICAgICBjaW4+Pnk7CiAgICAgICAgICAgIGNvdXQ8PHJvcFt5XTw8IlxuIjsKICAgICAgICB9CiAgICB9Cn0K