#include <bits/stdc++.h>
using namespace std;
struct Splay {
  struct Node {
    long long key;
    Node *lhs, *rhs;
    long long cnt;
    long long sum[5];
    bool memoized;
    Node(long long key = 0, Node *lhs = NULL, Node *rhs = NULL)
        : key(key), lhs(lhs), rhs(rhs), memoized(false) {
      memset((sum), (0LL), sizeof(sum));
    }
  };
  Node *root;
  void unmemoized(Node *t) {
    if (t == NULL) return;
    t->memoized = false;
  }
  Node *splay(long long x, Node *t) {
    if (t == NULL) return NULL;
    Node n, *l = &n, *r = &n, *s = NULL;
    for (;;) {
      unmemoized(t);
      unmemoized(s);
      unmemoized(r);
      if (x < t->key) {
        if (t->lhs != NULL && x < t->lhs->key) {
          s = t->lhs;
          t->lhs = s->rhs;
          s->rhs = t;
          t = s;
        }
        if (t->lhs == NULL) break;
        r->lhs = t;
        r = t;
        t = t->lhs;
      } else if (x > t->key) {
        if (t->rhs != NULL && x > t->rhs->key) {
          s = t->rhs;
          t->rhs = s->lhs;
          s->lhs = t;
          t = s;
        }
        if (t->rhs == NULL) break;
        l->rhs = t;
        l = t;
        t = t->rhs;
      } else {
        break;
      }
    }
    unmemoized(l);
    unmemoized(r);
    unmemoized(t);
    l->rhs = t->lhs;
    r->lhs = t->rhs;
    t->lhs = n.rhs;
    t->rhs = n.lhs;
    return t;
  }
  Node *find(long long x) {
    root = splay(x, root);
    if (x == root->key)
      return root;
    else
      return NULL;
  }
  void insert(long long x) {
    if (root == NULL) {
      root = new Node(x, NULL, NULL);
    } else {
      root = splay(x, root);
      if (x < root->key) {
        Node *t = new Node(x, root->lhs, root);
        root->lhs = NULL;
        root = t;
      } else if (x > root->key) {
        Node *t = new Node(x, root, root->rhs);
        root->rhs = NULL;
        root = t;
      }
    }
  }
  void erase(long long x) {
    if (!find(x)) return;
    if (!root->lhs) {
      root = root->rhs;
    } else {
      Node *t = root->rhs;
      root = splay(x, root->lhs);
      root->rhs = t;
    }
  }
  long long count(Node *n) {
    if (n == NULL) return 0LL;
    return n->cnt;
  }
  void eval(Node *n) {
    if (n == NULL) return;
    if (n->memoized) return;
    eval(n->lhs);
    eval(n->rhs);
    long long lcnt = (n->lhs != NULL) ? n->lhs->cnt : 0LL;
    long long rcnt = (n->rhs != NULL) ? n->rhs->cnt : 0LL;
    n->cnt = lcnt + rcnt + 1LL;
    for (int i = 0; i < (int)(5); ++i) {
      n->sum[i] = 0LL;
      if (n->lhs != NULL) n->sum[i] = n->lhs->sum[i];
      if (lcnt % 5 == i) n->sum[i] += n->key;
      if (n->rhs != NULL) n->sum[i] += n->rhs->sum[(i - lcnt % 5 + 9) % 5];
    }
    n->memoized = true;
  }
  Splay() : root(NULL) {}
};
int main() {
  int Q;
  scanf("%d", &Q);
  Splay sp;
  sp.insert(0LL);
  for (int itr = 0; itr < (int)(Q); ++itr) {
    char tmp[9];
    scanf(" %s", tmp);
    if (tmp[0] == 'a') {
      int x;
      scanf("%d", &x);
      sp.insert((long long)x);
    } else if (tmp[0] == 'd') {
      int x;
      scanf("%d", &x);
      sp.erase((long long)x);
    } else if (tmp[0] == 's') {
      sp.eval(sp.root);
      cout << sp.root->sum[3] << endl;
    } else {
      assert(0);
    }
  }
}
