#include <bits/stdc++.h>
#define INF 1000000009
using namespace std;
struct tr
{
int min, max, md, k, p;
tr * l, *r;
tr(int _k)
{
p = rand();
l = r = NULL;
min = max = k = _k;
md = INF;
}
} *t;
char s[100];
int n, x;
void upd(tr * t)
{
if(!t) return;
t->md = INF;
t->min = t->max = t->k;
if(t->l)
t->min = min(t->min, t->l->min),
t->max = max(t->max, t->l->max),
t->md = min(t->md, min(t->l->md, t->k - t->l->max ) );
if(t->r)
t->min = min(t->min, t->r->min),
t->max = max(t->max, t->r->max),
t->md = min(t->md, min(t->r->md, t->r->min - t->k) );
}
void split(tr * rt, int k, tr* &l, tr* &r)
{
if(rt == NULL)
l = r = NULL;
else if(k < rt->k)
{
split(rt->l, k, l, rt->l);
r = rt;
}
else
{
split(rt->r, k, rt->r, r);
l = rt;
}
upd(rt);
}
void merge(tr* &rt, tr* l, tr* r)
{
if(!l || !r)
rt = l ? l : r;
else if(l->p > r->p)
{
merge(l->r, l->r, r);
rt = l;
}
else
{
merge(r->l, l, r->l);
rt = r;
}
upd(rt);
}
int Min(tr* t)
{
if(t)
return t->md;
else return -1;
}
int Max(tr* t)
{
if(t && (t->l || t->r))
return t->max - t->min;
else return -1;
}
void add(tr * &p, int nr)
{
tr * t, *ls, *rs;
t = new tr(nr);
split(p, nr, ls, rs);
merge(ls, ls, t);
merge(p, ls, rs);
}
int sch(tr* &p, int nr)
{
int ok = 1;
tr * t, *ls, *rs;
split(p, nr, ls, rs);
split(ls, nr-1, ls, t);
if(!t) ok = 0;
merge(ls, ls, t);
merge(p, ls, rs);
return ok;
}
void del(tr* &p, int nr)
{
tr * t, *ls, *rs;
split(p, nr, ls, rs);
split(ls, nr-1, ls, t);
if(t) delete(t);
merge(p, ls, rs);
}
//ifstream fin("zeap.in");
//ofstream fout("zeap.out");
//#define fin cin
//#define fout cout
int main()
{
srand(43256);
ios_base :: sync_with_stdio(false);
freopen("zeap.in", "r", stdin);
freopen("zeap.out", "w", stdout);
while(scanf("%s", s) != EOF)
{
if(s[0] == 'I')
{
scanf("%d", &x);
if(sch(t, x) == 0)
add(t, x);
continue;
}
if(s[0] == 'M' && s[1] == 'A')
{
printf("%d\n", Max(t));//fout << Max(t) << '\n';
continue;
}
if(s[0] == 'M' && s[1] == 'I') {
int pp = Min(t);
if(pp == INF) pp = -1;
printf("%d\n", Min(t));//fout << pp << '\n';
continue;
}
if( s[0] == 'C')
{
scanf("%d", &x);
int op = sch(t, x);
printf("%d\n", op);
//fout << op << '\n';
continue;
}
if( s[0] == 'S')
{
scanf("%d", &x);
int op = sch(t, x);
if(op==0)
printf("-1\n");//fout << -1 << '\n';
else
del(t, x);
continue;
}
}
}