#include <bits/stdc++.h>
using namespace std;
inline void Read(int &x) {
  int f = 1;
  char c = getchar();
  x = 0;
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = (x << 3) + (x << 1) + c - '0';
    c = getchar();
  }
  x *= f;
}
inline void Print(int x) {
  if (x < 0) {
    x = ~(x - 1);
    putchar('-');
  }
  if (x > 9) Print(x / 10);
  putchar(x % 10 + '0');
}
int n;
struct Operating {
  int opt, num;
} op[114514];
struct Node {
  int l, r, wei;
  long long sum[5];
} tr[114514 << 2];
inline void Pushup(int k) {
  tr[k].wei = tr[k << 1].wei + tr[k << 1 | 1].wei;
  memset(tr[k].sum, 0, sizeof(tr[k].sum));
  int lcnt = tr[k << 1].wei % 5;
  for (int i = 0; i < 5; i++) {
    tr[k].sum[i] += tr[k << 1].sum[i];
    tr[k].sum[i] += tr[k << 1 | 1].sum[(i - lcnt + 5) % 5];
  }
}
inline void Build(int k, int ll, int rr) {
  if (ll > rr) return;
  tr[k].l = ll, tr[k].r = rr;
  if (ll == rr) return;
  Build(k << 1, ll, ((ll + rr) >> 1));
  Build(k << 1 | 1, ((ll + rr) >> 1) + 1, rr);
}
inline void Add(int k, int pos, int add) {
  if (tr[k].l == tr[k].r) {
    tr[k].wei = 1;
    tr[k].sum[1] = add;
    return;
  }
  if (pos <= ((tr[k].l + tr[k].r) >> 1)) Add(k << 1, pos, add);
  if (((tr[k].l + tr[k].r) >> 1) < pos) Add(k << 1 | 1, pos, add);
  Pushup(k);
}
inline void Del(int k, int pos, int del) {
  if (tr[k].l == tr[k].r) {
    tr[k].wei = tr[k].sum[1] = 0;
    return;
  }
  if (pos <= ((tr[k].l + tr[k].r) >> 1)) Del(k << 1, pos, del);
  if (((tr[k].l + tr[k].r) >> 1) < pos) Del(k << 1 | 1, pos, del);
  Pushup(k);
}
int tmp[114514], cnt;
int main() {
  Read(n);
  for (int i = 1; i <= n; i++) {
    string O;
    cin >> O;
    if (O[0] == 'a') {
      op[i].opt = 1;
      Read(op[i].num);
      tmp[++cnt] = op[i].num;
    } else if (O[0] == 'd') {
      op[i].opt = 2;
      Read(op[i].num);
    } else if (O[0] == 's') {
      op[i].opt = 3;
    }
  }
  sort(tmp + 1, tmp + 1 + cnt);
  cnt = unique(tmp + 1, tmp + 1 + cnt) - tmp - 1;
  map<int, int> mp;
  for (int i = 1; i <= cnt; i++) mp[tmp[i]] = i;
  Build(1, 1, cnt);
  for (int i = 1; i <= n; i++) {
    if (op[i].opt == 1) {
      Add(1, mp[op[i].num], op[i].num);
    } else if (op[i].opt == 2) {
      Del(1, mp[op[i].num], op[i].num);
    } else {
      printf("%I64d\n", tr[1].sum[3]);
    }
  }
  return 0;
}
