#include <bits/stdc++.h>
using namespace std;
struct treap {
  int key;
  int prior;
  long long sum;
  int cnt;
  treap *l, *r;
  treap(int key)
      : key(key), prior(rand()), sum(key), cnt(1), l(NULL), r(NULL) {}
};
typedef treap* pt;
const int MAX_T = 5;
pt t[MAX_T], tl[MAX_T], tr[MAX_T];
pt root;
int cnt(pt t) {
  if (t)
    return t->cnt;
  else
    return 0;
}
long long sum(pt t) {
  if (t)
    return t->sum;
  else
    return 0;
}
void upd(pt& t) {
  if (t) {
    t->sum = sum(t->l) + 1LL * t->key + sum(t->r);
    t->cnt = cnt(t->l) + 1 + cnt(t->r);
  }
}
void merge(pt& t, pt l, pt r) {
  if (!l)
    t = r;
  else if (!r)
    t = l;
  else if (l->prior < r->prior) {
    merge(l->r, l->r, r);
    t = l;
  } else {
    merge(r->l, l, r->l);
    t = r;
  }
  upd(t);
}
void split(pt t, pt& l, pt& r, int key) {
  if (!t)
    l = r = NULL;
  else if (t->key < key) {
    split(t->r, t->r, r, key);
    l = t;
  } else {
    split(t->l, l, t->l, key);
    r = t;
  }
  upd(l);
  upd(r);
}
void add(int x) {
  pt nt = new treap(x);
  int pos = 1;
  for (int i = 0; i < 5; ++i) {
    split(t[i], tl[i], tr[i], x);
    pos += cnt(tl[i]);
  }
  merge(tl[pos % 5], tl[pos % 5], nt);
  for (int i = 0; i < 5; ++i) merge(t[i], tl[i], tr[(i - 1 + 5) % 5]);
}
void del(int x) {
  pt trash;
  for (int i = 0; i < 5; ++i) {
    split(t[i], tl[i], tr[i], x);
    split(tr[i], trash, tr[i], x + 1);
  }
  for (int i = 0; i < 5; ++i) merge(t[i], tl[i], tr[(i + 1) % 5]);
}
long long sum() { return sum(t[3]); }
const int MAX_S = 5;
char s[MAX_S];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < 5; ++i) t[i] = tl[i] = tr[i] = NULL;
  for (int i = 0; i < n; ++i) {
    scanf("%s", s);
    if (s[0] == 'a') {
      int x;
      scanf("%d", &x);
      add(x);
    } else if (s[0] == 'd') {
      int x;
      scanf("%d", &x);
      del(x);
    } else {
      printf("%I64d\n", sum());
    }
  }
  return 0;
}
