#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=100000+10;
const int NUM=3;
int ran()
{
static int seed=222313214;
seed+=(seed<<2)+1;
return seed;
}
struct node
{
int key,weight;//weight值大的在上面
node *lc,*rc;
bool rev;
int add;
int size;//记录子树大小
int ma;//记录子树中的最小值
node(){}
friend void downit(node* ,int rev,int add);
void down()
{
if(lc)downit(lc,rev,add);
if(rc)downit(rc,rev,add);
add=0;rev=0;
}
void update()
{
size=1;
ma=key;
if(lc)
{
size+=lc->size;
if(lc->ma<ma)
ma=lc->ma;
}
if(rc)
{
size+=rc->size;
if(rc->ma<ma)
ma=rc->ma;
}
}
}tree[MAX*NUM];
int cnt;
node* mynew()
{
return tree+(cnt++);
}
node* newnode(int _key,int _weight,node* _lc,node* _rc)
{
node* p=mynew();
p->key=p->ma=_key;
p->weight=_weight;
p->lc=_lc;
p->rc=_rc;
p->rev=0;
p->add=0;
p->size=1;
return p;
}
void down(node* u)
{
if(!u)return;
u->down();
}
void downit(node* np,int rev,int add)
{
if(!np)return;
if(rev)
{
swap(np->lc,np->rc);
np->rev^=rev;
}
if(add)
{
np->key+=add;
np->add+=add;
np->ma+=add;
}
}
node* merge(node* a,node* b)
{
if(!b)return a;
if(!a)return b;
down(a);
down(b);
if( a->weight > b->weight )
{
a->rc=merge(a->rc,b);
a->update();
return a;
}
else
{
b->lc=merge(a,b->lc);
b->update();
return b;
}
}
pair<node*,node*> spilt_l(node* a,int left)
{
if(!a)
return mp((node*)0,(node*)0);
down(a);
int size_l=(a->lc?a->lc->size:0)+1;
pair<node* ,node* > tmp;
if(size_l<=left)
{
tmp=spilt_l(a->rc,left-size_l);
a->rc=tmp.x;
a->update();
return mp(a,tmp.y);
}
else
{
tmp=spilt_l(a->lc,left);
a->lc=tmp.y;
a->update();
return mp(tmp.x,a);
}
}
node* insert(node* a,int left,node* p)
{
if(!a)return p;
down(a);
int size_l=(a->lc?a->lc->size:0)+1;
if(p->weight<a->weight)
{
if(size_l<=left)
{
a->rc=insert(a->rc,left-size_l,p);
a->update();
}
else
{
a->lc=insert(a->lc,left,p);
a->update();
}
return a;
}
else
{
pair<node* ,node* > tmp=spilt_l(a,left);
p->lc=tmp.x;
p->rc=tmp.y;
p->update();
return p;
}
}
int n,m;
int a[MAX];
node* root;
void doit(node*& ll,node*& mid,node*& rr,int a,int b)
{
pair<node*,node*> tmp;
tmp=spilt_l(root,a-1);
ll=tmp.x;
tmp=spilt_l(tmp.y,b-a+1);
mid=tmp.x;
rr=tmp.y;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
#endif
int i;
scanf("%d",&n);
REP(i,1,n)
{
scanf("%d",&a[i]);
root=insert(root,i-1,newnode(a[i],ran(),0,0));
}
scanf("%d",&m);
REP(i,1,m)
{
char Q[100];
scanf("%s",Q);
int a,b,c;
node* ll(0),*rr(0),*mid(0);
if(Q[0]=='A')
{
scanf("%d%d%d",&a,&b,&c);
doit(ll,mid,rr,a,b);
downit(mid,0,c);
root=merge( merge(ll,mid) , rr );
}
else if(Q[0]=='R' && Q[3]=='E')
{
scanf("%d%d",&a,&b);
doit(ll,mid,rr,a,b);
downit(mid,1,0);
root=merge( merge(ll,mid) , rr );
}
else if(Q[0]=='R' && Q[3]=='O')
{
scanf("%d%d%d",&a,&b,&c);
c=c%(b-a+1);
if(!c)continue;
doit(ll,mid,rr,a,b);
pair<node*,node*> tmp=spilt_l(mid,mid->size-c);
root=merge( merge(ll,merge(tmp.y,tmp.x)) , rr );
}
else if(Q[0]=='I')
{
scanf("%d%d",&a,&b);
root=insert(root,a,newnode(b,ran(),0,0));
}
else if(Q[0]=='D')
{
scanf("%d",&a);
pair<node*,node*> tmp=spilt_l(root,a-1);
root=merge(tmp.x,spilt_l(tmp.y,1).y);
}
else if(Q[0]=='M')
{
scanf("%d%d",&a,&b);
doit(ll,mid,rr,a,b);
printf("%d\n",mid->ma);
root=merge( merge(ll,mid) ,rr);
}
}
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9MTAwMDAwKzEwOwpjb25zdCBpbnQgTlVNPTM7CgppbnQgcmFuKCkKewoJc3RhdGljIGludCBzZWVkPTIyMjMxMzIxNDsKCXNlZWQrPShzZWVkPDwyKSsxOwoJcmV0dXJuIHNlZWQ7Cn0KCnN0cnVjdCBub2RlCnsKCWludCBrZXksd2VpZ2h0Oy8vd2VpZ2h05YC85aSn55qE5Zyo5LiK6Z2iCglub2RlICpsYywqcmM7Cglib29sIHJldjsKCWludCBhZGQ7CglpbnQgc2l6ZTsvL+iusOW9leWtkOagkeWkp+WwjwoJaW50IG1hOy8v6K6w5b2V5a2Q5qCR5Lit55qE5pyA5bCP5YC8CgoJbm9kZSgpe30KCWZyaWVuZCB2b2lkIGRvd25pdChub2RlKiAsaW50IHJldixpbnQgYWRkKTsKCgl2b2lkIGRvd24oKQoJewoJCWlmKGxjKWRvd25pdChsYyxyZXYsYWRkKTsKCQlpZihyYylkb3duaXQocmMscmV2LGFkZCk7CgkJYWRkPTA7cmV2PTA7Cgl9CgoJdm9pZCB1cGRhdGUoKQoJewoJCXNpemU9MTsKCQltYT1rZXk7CgkJaWYobGMpCgkJewoJCQlzaXplKz1sYy0+c2l6ZTsKCQkJaWYobGMtPm1hPG1hKQoJCQkJbWE9bGMtPm1hOwoJCX0KCQlpZihyYykKCQl7CgkJCXNpemUrPXJjLT5zaXplOwoJCQlpZihyYy0+bWE8bWEpCgkJCQltYT1yYy0+bWE7CgkJfQoJfQp9dHJlZVtNQVgqTlVNXTsKaW50IGNudDsKCm5vZGUqIG15bmV3KCkKewoJcmV0dXJuIHRyZWUrKGNudCsrKTsKfQoKbm9kZSogbmV3bm9kZShpbnQgX2tleSxpbnQgX3dlaWdodCxub2RlKiBfbGMsbm9kZSogX3JjKQp7Cglub2RlKiBwPW15bmV3KCk7CglwLT5rZXk9cC0+bWE9X2tleTsKCXAtPndlaWdodD1fd2VpZ2h0OwoJcC0+bGM9X2xjOwoJcC0+cmM9X3JjOwoJcC0+cmV2PTA7CglwLT5hZGQ9MDsKCXAtPnNpemU9MTsKCXJldHVybiBwOwp9Cgp2b2lkIGRvd24obm9kZSogdSkKewoJaWYoIXUpcmV0dXJuOwoJdS0+ZG93bigpOwp9Cgp2b2lkIGRvd25pdChub2RlKiBucCxpbnQgcmV2LGludCBhZGQpCnsKCWlmKCFucClyZXR1cm47CglpZihyZXYpCgl7CgkJc3dhcChucC0+bGMsbnAtPnJjKTsKCQlucC0+cmV2Xj1yZXY7Cgl9CglpZihhZGQpCgl7CgkJbnAtPmtleSs9YWRkOwoJCW5wLT5hZGQrPWFkZDsKCQlucC0+bWErPWFkZDsKCX0KfQoKbm9kZSogbWVyZ2Uobm9kZSogYSxub2RlKiBiKQp7CglpZighYilyZXR1cm4gYTsKCWlmKCFhKXJldHVybiBiOwoJZG93bihhKTsKCWRvd24oYik7CglpZiggYS0+d2VpZ2h0ID4gYi0+d2VpZ2h0ICkKCXsKCQlhLT5yYz1tZXJnZShhLT5yYyxiKTsKCQlhLT51cGRhdGUoKTsKCQlyZXR1cm4gYTsKCX0KCWVsc2UKCXsKCQliLT5sYz1tZXJnZShhLGItPmxjKTsKCQliLT51cGRhdGUoKTsKCQlyZXR1cm4gYjsKCX0KfQoKcGFpcjxub2RlKixub2RlKj4gc3BpbHRfbChub2RlKiBhLGludCBsZWZ0KQp7CglpZighYSkKCQlyZXR1cm4gbXAoKG5vZGUqKTAsKG5vZGUqKTApOwoJZG93bihhKTsKCWludCBzaXplX2w9KGEtPmxjP2EtPmxjLT5zaXplOjApKzE7CglwYWlyPG5vZGUqICxub2RlKiA+IHRtcDsKCWlmKHNpemVfbDw9bGVmdCkKCXsKCQl0bXA9c3BpbHRfbChhLT5yYyxsZWZ0LXNpemVfbCk7CgkJYS0+cmM9dG1wLng7CgkJYS0+dXBkYXRlKCk7CgkJcmV0dXJuIG1wKGEsdG1wLnkpOwoJfQoJZWxzZQoJewoJCXRtcD1zcGlsdF9sKGEtPmxjLGxlZnQpOwoJCWEtPmxjPXRtcC55OwoJCWEtPnVwZGF0ZSgpOwoJCXJldHVybiBtcCh0bXAueCxhKTsKCX0KfQoKbm9kZSogaW5zZXJ0KG5vZGUqIGEsaW50IGxlZnQsbm9kZSogcCkKewoJaWYoIWEpcmV0dXJuIHA7Cglkb3duKGEpOwoJaW50IHNpemVfbD0oYS0+bGM/YS0+bGMtPnNpemU6MCkrMTsKCWlmKHAtPndlaWdodDxhLT53ZWlnaHQpCgl7IAoJCWlmKHNpemVfbDw9bGVmdCkKCQl7CgkJCWEtPnJjPWluc2VydChhLT5yYyxsZWZ0LXNpemVfbCxwKTsKCQkJYS0+dXBkYXRlKCk7CgkJfQoJCWVsc2UgCgkJewoJCQlhLT5sYz1pbnNlcnQoYS0+bGMsbGVmdCxwKTsKCQkJYS0+dXBkYXRlKCk7CgkJfQoJCXJldHVybiBhOwoJfQoJZWxzZQoJewoJCXBhaXI8bm9kZSogLG5vZGUqID4gdG1wPXNwaWx0X2woYSxsZWZ0KTsKCQlwLT5sYz10bXAueDsKCQlwLT5yYz10bXAueTsKCQlwLT51cGRhdGUoKTsKCQlyZXR1cm4gcDsKCX0KfQoKaW50IG4sbTsKaW50IGFbTUFYXTsKbm9kZSogcm9vdDsKCnZvaWQgZG9pdChub2RlKiYgbGwsbm9kZSomIG1pZCxub2RlKiYgcnIsaW50IGEsaW50IGIpCnsKCXBhaXI8bm9kZSosbm9kZSo+IHRtcDsKCXRtcD1zcGlsdF9sKHJvb3QsYS0xKTsKCWxsPXRtcC54OwoJdG1wPXNwaWx0X2wodG1wLnksYi1hKzEpOwoJbWlkPXRtcC54OwoJcnI9dG1wLnk7Cn0KCmludCBtYWluKCkKewojaWZuZGVmIE9OTElORV9KVURHRQoJZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pO2ZyZW9wZW4oIm91dHB1dC50eHQiLCJ3IixzdGRvdXQpOwojZW5kaWYKCWludCBpOwoJc2NhbmYoIiVkIiwmbik7CglSRVAoaSwxLG4pCgl7CgkJc2NhbmYoIiVkIiwmYVtpXSk7CgkJcm9vdD1pbnNlcnQocm9vdCxpLTEsbmV3bm9kZShhW2ldLHJhbigpLDAsMCkpOwoJfQoJc2NhbmYoIiVkIiwmbSk7CglSRVAoaSwxLG0pCgl7CgkJY2hhciBRWzEwMF07CgkJc2NhbmYoIiVzIixRKTsKCQlpbnQgYSxiLGM7CgkJbm9kZSogbGwoMCksKnJyKDApLCptaWQoMCk7CgkJaWYoUVswXT09J0EnKQoJCXsKCQkJc2NhbmYoIiVkJWQlZCIsJmEsJmIsJmMpOwoJCQlkb2l0KGxsLG1pZCxycixhLGIpOwoJCQlkb3duaXQobWlkLDAsYyk7CgkJCXJvb3Q9bWVyZ2UoIG1lcmdlKGxsLG1pZCkgLCByciApOwoJCX0KCQllbHNlIGlmKFFbMF09PSdSJyAmJiBRWzNdPT0nRScpCgkJewoJCQlzY2FuZigiJWQlZCIsJmEsJmIpOwoJCQlkb2l0KGxsLG1pZCxycixhLGIpOwoJCQlkb3duaXQobWlkLDEsMCk7CgkJCXJvb3Q9bWVyZ2UoIG1lcmdlKGxsLG1pZCkgLCByciApOwoJCX0KCQllbHNlIGlmKFFbMF09PSdSJyAmJiBRWzNdPT0nTycpCgkJewoJCQlzY2FuZigiJWQlZCVkIiwmYSwmYiwmYyk7CgkJCWM9YyUoYi1hKzEpOwoJCQlpZighYyljb250aW51ZTsKCQkJZG9pdChsbCxtaWQscnIsYSxiKTsKCQkJcGFpcjxub2RlKixub2RlKj4gdG1wPXNwaWx0X2wobWlkLG1pZC0+c2l6ZS1jKTsKCQkJcm9vdD1tZXJnZSggbWVyZ2UobGwsbWVyZ2UodG1wLnksdG1wLngpKSAsIHJyICk7CgkJfQoJCWVsc2UgaWYoUVswXT09J0knKQoJCXsKCQkJc2NhbmYoIiVkJWQiLCZhLCZiKTsKCQkJcm9vdD1pbnNlcnQocm9vdCxhLG5ld25vZGUoYixyYW4oKSwwLDApKTsKCQl9CgkJZWxzZSBpZihRWzBdPT0nRCcpCgkJewoJCQlzY2FuZigiJWQiLCZhKTsKCQkJcGFpcjxub2RlKixub2RlKj4gdG1wPXNwaWx0X2wocm9vdCxhLTEpOwoJCQlyb290PW1lcmdlKHRtcC54LHNwaWx0X2wodG1wLnksMSkueSk7CgkJfQoJCWVsc2UgaWYoUVswXT09J00nKQoJCXsKCQkJc2NhbmYoIiVkJWQiLCZhLCZiKTsKCQkJZG9pdChsbCxtaWQscnIsYSxiKTsKCQkJcHJpbnRmKCIlZFxuIixtaWQtPm1hKTsKCQkJcm9vdD1tZXJnZSggbWVyZ2UobGwsbWlkKSAscnIpOwoJCX0KCX0KCXJldHVybiAwOwp9Cg==