#include <bits/stdc++.h>
using namespace std;
struct node {
  int l, r, m;
  int cnt;
  long long sum[5];
};
const int maxn = 100100;
node T[maxn << 2];
char cmd[maxn][5];
int dat[maxn];
int bin[maxn];
int tmp[maxn];
int q;
void pushup(int rt) {
  for (int i = 0; i < 5; i++)
    T[rt].sum[i] = T[rt << 1].sum[i] +
                   T[rt << 1 | 1].sum[((i - T[rt << 1].cnt) % 5 + 5) % 5];
  T[rt].cnt = T[rt << 1].cnt + T[rt << 1 | 1].cnt;
}
void build(int begin, int end, int rt) {
  T[rt].l = begin;
  T[rt].r = end;
  T[rt].m = (T[rt].l + T[rt].r) >> 1;
  T[rt].cnt = 0;
  for (int i = 0; i < 5; i++) T[rt].sum[i] = 0;
  if (begin == end) return;
  build(T[rt].l, T[rt].m, rt << 1);
  build(T[rt].m + 1, T[rt].r, rt << 1 | 1);
}
void update(int id, int add, int rt, int op) {
  if (T[rt].l == T[rt].r) {
    T[rt].sum[0] += add;
    T[rt].cnt += op;
    return;
  }
  if (id <= T[rt].m)
    update(id, add, rt << 1, op);
  else
    update(id, add, rt << 1 | 1, op);
  pushup(rt);
}
int main() {
  while (~scanf("%d", &q)) {
    int top = 0;
    for (int i = 0; i < q; i++) {
      scanf("%s", cmd[i]);
      if (cmd[i][0] != 's') {
        scanf("%d", &dat[top]);
        tmp[top] = dat[top];
        top++;
      }
    }
    if (q == 1 && cmd[0][0] == 's') {
      puts("0");
      continue;
    }
    sort(tmp, tmp + top);
    int num = unique(tmp, tmp + top) - tmp;
    build(1, num, 1);
    for (int i = 0; i < top; i++) {
      bin[i] = lower_bound(tmp, tmp + num, dat[i]) - tmp + 1;
    }
    for (int i = 0, j = 0; i < q; i++) {
      if (cmd[i][0] == 'a')
        update(bin[j], dat[j], 1, 1), j++;
      else if (cmd[i][0] == 'd')
        update(bin[j], -dat[j], 1, -1), j++;
      else
        printf("%I64d\n", T[1].sum[2]);
    }
  }
  return 0;
}
