#include <bits/stdc++.h>
using namespace std;
template <class T>
void read(T &x) {
  x = 0;
  char c = getchar();
  bool p = 0;
  for (; c < '0' || c > '9'; c = getchar())
    if (c == '-') p = 1;
  for (; c >= '0' && c <= '9'; c = getchar())
    x = (x << 3) + (x << 1) + (c ^ 48);
  if (p) x = -x;
}
const int N = 100005;
struct node {
  long long Hina[5];
  int num;
} tree[N << 2];
int n, opt[N];
char tmp[5];
map<long long, int> mp;
long long x[N], xx[N];
void pushup(int k) {
  tree[k].num = tree[k << 1].num + tree[k << 1 | 1].num;
  for (int i = 0; i < 5; ++i) {
    tree[k].Hina[i] =
        tree[k << 1].Hina[i] +
        tree[k << 1 | 1].Hina[((i - tree[k << 1].num) % 5 + 5) % 5];
  }
}
void add(int l, int r, int k, int pos, int opt, long long val) {
  if (l == r) {
    if (!opt) {
      ++tree[k].num;
      tree[k].Hina[1] = val;
    } else {
      --tree[k].num;
      tree[k].Hina[1] = 0;
    }
    return;
  }
  int mid = (l + r) >> 1;
  if (pos <= mid)
    add(l, mid, k << 1, pos, opt, val);
  else
    add(mid + 1, r, k << 1 | 1, pos, opt, val);
  pushup(k);
}
int cnt;
int main() {
  read(n);
  for (int i = 1; i <= n; ++i) {
    scanf("%s", tmp);
    if (tmp[0] == 'a') opt[i] = 0;
    if (tmp[0] == 'd') opt[i] = 1;
    if (tmp[0] == 's') opt[i] = 2;
    if (tmp[0] != 's') {
      read(x[++cnt]);
      xx[cnt] = x[cnt];
    }
  }
  sort(xx + 1, xx + cnt + 1);
  int temp = 0;
  for (int i = 1; i <= cnt; ++i) {
    if (!mp[xx[i]]) {
      mp[xx[i]] = ++temp;
    }
  }
  cnt = 0;
  for (int i = 1; i <= n; ++i) {
    if (opt[i] == 2) {
      printf("%I64d\n", tree[1].Hina[3]);
    } else {
      ++cnt;
      add(1, temp, 1, mp[x[cnt]], opt[i], x[cnt]);
    }
  }
  return 0;
}
