#include <bits/stdc++.h>
const int N = 110000;
int n;
struct Node {
  int val;
  int size;
  int l, r, fa;
} nd[N];
int cnt;
int ans;
int rt;
long long int sum;
int newnode(int val) {
  cnt++;
  nd[cnt].val = val;
  nd[cnt].size = 1;
  nd[cnt].l = nd[cnt].r = nd[cnt].fa = 0;
  return cnt;
}
void update(int p) {
  nd[p].size = 1;
  nd[p].size += nd[nd[p].l].size + nd[nd[p].r].size;
}
bool getlr(int p) { return p == nd[nd[p].fa].l; }
void leftrot(int p) {
  int f = nd[p].fa;
  int ff = nd[f].fa;
  nd[f].r = nd[p].l;
  if (nd[p].l) nd[nd[p].l].fa = f;
  update(f);
  nd[p].l = f;
  nd[f].fa = p;
  nd[p].fa = ff;
  if (!ff)
    rt = p;
  else if (nd[ff].l == f)
    nd[ff].l = p;
  else
    nd[ff].r = p;
}
void rightrot(int p) {
  int f = nd[p].fa;
  int ff = nd[f].fa;
  nd[f].l = nd[p].r;
  if (nd[p].r) nd[nd[p].r].fa = f;
  update(f);
  nd[p].r = f;
  nd[f].fa = p;
  nd[p].fa = ff;
  if (!ff)
    rt = p;
  else if (nd[ff].l == f)
    nd[ff].l = p;
  else
    nd[ff].r = p;
}
void rotate(int p) {
  if (getlr(p))
    rightrot(p);
  else
    leftrot(p);
}
void splay(int p, int tar) {
  while (nd[p].fa != tar && nd[nd[p].fa].fa != tar) {
    if (getlr(p) == getlr(nd[p].fa))
      rotate(nd[p].fa);
    else
      rotate(p);
    rotate(p);
  }
  if (nd[p].fa != tar) rotate(p);
  update(p);
}
void addn(int p, int val) {
  if (val > nd[p].val) {
    if (nd[p].r) {
      addn(nd[p].r, val);
      update(p);
    } else {
      int pp = newnode(val);
      nd[p].r = pp;
      nd[pp].fa = p;
      update(p);
      splay(pp, 0);
    }
  } else {
    if (nd[p].l) {
      addn(nd[p].l, val);
      update(p);
    } else {
      int pp = newnode(val);
      nd[p].l = pp;
      nd[pp].fa = p;
      update(p);
      splay(pp, 0);
    }
  }
}
void deln(int p, int val) {
  if (!p) return;
  if (nd[p].val == val) {
    splay(p, 0);
    if (nd[p].l && nd[p].r) {
      splay(nd[p].l, 0);
      splay(nd[p].r, rt);
      nd[nd[rt].r].l = 0;
      nd[p].fa = 0;
      update(nd[rt].r);
      update(rt);
    } else if (nd[p].l) {
      nd[nd[p].l].fa = 0;
      rt = nd[p].l;
      nd[p].l = 0;
    } else if (nd[p].r) {
      nd[nd[p].r].fa = 0;
      rt = nd[p].r;
      nd[p].r = 0;
    } else
      rt = 0;
  } else if (nd[p].val < val)
    deln(nd[p].r, val);
  else
    deln(nd[p].l, val);
}
int find(int p, int pos) {
  if (!p) return 0;
  int w = nd[nd[p].l].size + 1;
  if (w == pos)
    return nd[p].val;
  else if (w < pos)
    return find(nd[p].r, pos - w);
  else
    return find(nd[p].l, pos);
}
void print(int p) {
  if (nd[p].l) print(nd[p].l);
  printf("%d %d %d %d %d\n", nd[p].val, nd[p].size, nd[nd[p].l].val,
         nd[nd[p].r].val, nd[nd[p].fa].val);
  if (nd[p].r) print(nd[p].r);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    char ch[5];
    int x;
    scanf("%s", &ch);
    if (ch[0] == 'a') {
      scanf("%d", &x);
      if (!rt)
        rt = newnode(x);
      else
        addn(rt, x);
      ans++;
    } else if (ch[0] == 'd') {
      scanf("%d", &x);
      deln(rt, x);
      ans--;
    } else if (ch[0] == 's') {
      sum = 0;
      for (int i = 1; i <= ans; i++) {
        if (i % 5 != 3) continue;
        sum += find(rt, i);
      }
      printf("%I64d\n", sum);
    }
  }
  return 0;
}
