#include <bits/stdc++.h>
using namespace std;
struct Node {
  int x;
  int size;
  long long sum[5];
  Node *left, *right;
  Node *fa;
  Node() {}
  Node(int _x, Node *f = NULL, Node *l = NULL, Node *r = NULL) {
    x = x, left = l, right = r, fa = f;
  }
  int lsize() { return left == NULL ? 0 : left->size; }
  int rsize() { return right == NULL ? 0 : right->size; }
  void pushup() {
    memset(sum, 0, sizeof(sum));
    if (left != NULL) {
      for (int i = 0; i < 5; i++) {
        sum[i] += left->sum[i];
      }
    }
    sum[(lsize() + 1) % 5] += x;
    if (right != NULL) {
      for (int i = 0; i < 5; i++) {
        sum[(i + lsize() + 1) % 5] += right->sum[i];
      }
    }
    size = lsize() + rsize() + 1;
  }
} *T = NULL;
void rotate(Node *x) {
  if (x->fa == NULL) return;
  Node *p = x->fa;
  if (p->left == x) {
    p->left = x->right;
    if (x->right) x->right->fa = p;
    if (p->fa) {
      if (p->fa->left == p)
        p->fa->left = x;
      else
        p->fa->right = x;
    }
    x->fa = p->fa, x->right = p, p->fa = x;
  } else {
    p->right = x->left;
    if (x->left) x->left->fa = p;
    if (p->fa) {
      if (p->fa->left == p)
        p->fa->left = x;
      else
        p->fa->right = x;
    }
    x->fa = p->fa, x->left = p, p->fa = x;
  }
  p->pushup(), x->pushup();
}
void print(Node *T, string s) {
  if (T == NULL) {
    cout << s << "NULL" << endl;
    return;
  }
  cout << s << "x:" << T->x << endl;
  cout << s << "size:" << T->size << endl;
  cout << s << "sum:";
  for (int i = 0; i < 5; i++) {
    cout << T->sum[i] << " ";
  }
  cout << endl;
  cout << s << "left:" << endl;
  print(T->left, s + "  ");
  cout << s << "right:" << endl;
  print(T->right, s + "  ");
}
Node *splay(Node *x) {
  while (x->fa) {
    Node *p = x->fa;
    int pd = p->left == x;
    if (p->fa) rotate((p->fa->left == p) == pd ? p : x);
    rotate(x);
  }
  return T = x;
}
Node *Insert(Node *T, Node *p, int v) {
  if (T == NULL) {
    T = new Node();
    T->x = v, T->left = T->right = NULL, T->fa = p;
    if (p) {
      if (v < p->x)
        p->left = T;
      else
        p->right = T;
    }
    T->pushup();
    return T;
  }
  Node *res;
  if (v < T->x)
    res = Insert(T->left, T, v);
  else
    res = Insert(T->right, T, v);
  T->pushup();
  return res;
}
Node *Find(Node *T, int v) {
  if (v == T->x) return T;
  if (v < T->x)
    return Find(T->left, v);
  else
    return Find(T->right, v);
}
void add(int v) {
  Node *x = Insert(T, NULL, v);
  if (!T) T = x;
  splay(x);
}
void del(int v) {
  Node *x = Find(T, v);
  splay(x);
  if (!x->left && !x->right) {
    delete x;
    T = NULL;
  } else if (!x->left) {
    T = x->right;
    T->fa = NULL;
    delete x;
  } else if (!x->right) {
    T = x->left;
    T->fa = NULL;
    delete x;
  } else {
    Node *p = T->left;
    T->left = p->fa = NULL;
    T = T->right, T->fa = NULL;
    Node *now = T;
    while (now->left != NULL) now = now->left;
    splay(now);
    T->left = p, p->fa = T;
    T->pushup();
    delete x;
  }
}
int main() {
  int n;
  scanf("%d", &n);
  while (n--) {
    char buf[5];
    scanf("%s", buf);
    if (buf[0] == 'a') {
      int x;
      scanf("%d", &x);
      add(x);
    } else if (buf[0] == 'd') {
      int x;
      scanf("%d", &x);
      del(x);
    } else
      printf("%I64d\n", T == NULL ? 0 : T->sum[3]);
  }
  return 0;
}
