#include <bits/stdc++.h>
using namespace std;
struct Treap {
  struct tree {
    int x, y, si;
    long long sum[5];
    tree *l, *r;
  };
  tree mem[100100];
  int mpos;
  tree *nil, *root;
  Treap() {
    mpos = 1;
    nil = mem;
    root = nil;
    nil->l = nil->r = nil;
  }
  void Calc(tree *t) {
    if (t == nil) return;
    t->si = t->l->si + 1 + t->r->si;
    for (int i = 0; i < 5; i++) t->sum[i] = t->l->sum[i];
    int sh = t->l->si;
    t->sum[sh % 5] += t->x;
    sh++;
    for (int i = 0; i < 5; i++) t->sum[(i + sh) % 5] += t->r->sum[i];
  }
  tree *nn(int x) {
    tree *t = mem + mpos++;
    t->y = (rand() << 15) + rand();
    t->x = x;
    t->l = t->r = nil;
    Calc(t);
    return t;
  }
  void split(tree *t, tree **l, tree **r, int x) {
    if (t == nil)
      *l = *r = nil;
    else if (t->x < x)
      *l = t, split(t->r, &t->r, r, x);
    else
      *r = t, split(t->l, l, &t->l, x);
    Calc(*l), Calc(*r);
  }
  void merge(tree **t, tree *l, tree *r) {
    if (l == nil || r == nil) {
      *t = max(l, r);
      return;
    }
    if (l->y < r->y)
      *t = l, merge(&(*t)->r, (*t)->r, r);
    else
      *t = r, merge(&(*t)->l, l, (*t)->l);
    Calc(*t);
  }
  void add(tree **t, int x) {
    tree *l, *r, *m;
    split(*t, &l, &r, x);
    merge(&m, l, nn(x));
    merge(t, m, r);
  }
  void del(tree **t, int x) {
    tree *l, *m, *r, *tmp;
    split(*t, &l, &tmp, x);
    split(tmp, &m, &r, x + 1);
    merge(t, l, r);
  }
  void Add(int x) { add(&root, x); }
  void Del(int x) { del(&root, x); }
} t;
int main() {
  int n;
  scanf("%d", &n);
  srand(unsigned(time(NULL)));
  while (n--) {
    char com[9];
    int x;
    scanf("%s", com);
    if (!strcmp(com, "add"))
      scanf("%d", &x), t.Add(x);
    else if (!strcmp(com, "del"))
      scanf("%d", &x), t.Del(x);
    else
      printf("%I64d\n", t.root->sum[2]);
  }
  return 0;
}
