#include <fstream>
#include <random>
#include <ctime>
using namespace std;
ifstream in("zeap.in");
ofstream out("zeap.out");
struct nya{
nya *st,*dr;
int val,prior,sz,ma,mi,dmi;};
nya nil;
nya *tr=&nil;
int mmin(int a,int b)
{
if (a==0) return b;
if (b==0) return a;
if (a<b) return a;
return b;
}
int mmax(int a,int b)
{
if (a>b) return a;
return b;
}
nya* trr(nya *n,nya *f,int c)
{
if (c==0) n->st=f;
else n->dr=f;
n->sz=1+n->st->sz+n->dr->sz;
if (n->st!=&nil) n->mi=n->st->mi;
else n->mi=n->val;
if (n->dr!=&nil) n->ma=n->dr->ma;
else n->ma=n->val;
n->dmi=1000000000;
if (n->st!=&nil) n->dmi=mmin(n->st->dmi,n->val-n->st->ma);
if (n->dr!=&nil) n->dmi=mmin(n->dmi,mmin(n->dr->dmi,n->dr->mi-n->val));
return n;
}
pair<nya*,nya*> split(nya *n,int k)
{
if (n==&nil) return {&nil,&nil};
if (n->st->sz>=k) {auto t=split(n->st,k); return {t.first,trr(n,t.second,0)};}
else {auto t=split(n->dr,k-n->st->sz-1); return {trr(n,t.first,1),t.second};}
}
nya* mer(nya *a,nya *b)
{
if (a==&nil) return b;
if (b==&nil) return a;
if (a->prior>b->prior) {return trr(a,mer(a->dr,b),1);}
else {return trr(b,mer(a,b->st),0);}
}
int cau(nya *n,int x)
{
if (n==&nil) return -1000000000;
if (n->val==x) {return n->st->sz+1;}
if (n->val>x) return cau(n->st,x);
return n->st->sz+1+cau(n->dr,x);
}
int cau2(nya *n,int x)
{
if (n==&nil) return 1;
if (n->val==x) {return n->st->sz+1;}
if (n->val>x) return cau2(n->st,x);
return n->st->sz+1+cau2(n->dr,x);
}
nya* ins(nya *n,int poz,int val)
{
int y=cau(n,val);
if (y>=0) return n;
poz=cau2(n,val);
auto t=split(n,poz-1);
return mer(mer(t.first,new nya{&nil,&nil,val,rand(),1,val,val,1000000000}),t.second);
}
nya* ste(nya *n,int poz,int val)
{
poz=cau(n,val);
if (poz<0) {out<<-1<<'\n'; return n;}
auto t=split(n,poz-1);
auto t2=split(t.second,1);
return mer(t.first,t2.second);
}
int main()
{
srand(time(NULL));
char c;
int x=0;
while (in>>c)
{
if (c=='I') {in>>x; tr=ins(tr,0,x);}
else if (c=='S') {in>>x; tr=ste(tr,0,x);}
else if (c=='C') {in>>x;int poz=cau(tr,x); if (poz<0) {out<<0;} else out<<1; out<<'\n';}
else {in>>c>>c;if (tr->sz<2) out<<-1; else if (c=='X') out<<tr->ma-tr->mi; else out<<tr->dmi; out<<'\n';}
}
return 0;
}