#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
long long ans[maxn << 2][6];
int sum[maxn << 2];
vector<pair<int, int> > R;
vector<int> Num;
int N;
void PushUP(int rt) {
  for (int i = 0; i < 5; i++)
    ans[rt][i] =
        ans[rt << 1][i] + ans[rt << 1 | 1][(i + 5 - sum[rt << 1] % 5) % 5];
}
void add(int l, int r, int rt, int x) {
  sum[rt]++;
  if (l == r) {
    ans[rt][0] = Num[x];
    return;
  }
  int m = (l + r) / 2;
  if (x <= m)
    add(l, m, rt << 1, x);
  else
    add(m + 1, r, rt << 1 | 1, x);
  PushUP(rt);
}
void del(int l, int r, int rt, int x) {
  sum[rt]--;
  if (l == r) {
    ans[rt][0] = 0;
    return;
  }
  int m = (l + r) / 2;
  if (x <= m)
    del(l, m, rt << 1, x);
  else
    del(m + 1, r, rt << 1 | 1, x);
  PushUP(rt);
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    char op[5];
    scanf("%s", op);
    int a = -1;
    if (op[0] != 's') scanf("%d", &a), Num.push_back(a);
    R.push_back(make_pair(op[0] == 'a' ? 1 : op[0] == 'd' ? 2 : 3, a));
  }
  sort(Num.begin(), Num.end());
  N = Num.size();
  for (int i = 0; i < R.size(); i++) {
    if (R[i].first == 1) {
      int x = lower_bound(Num.begin(), Num.end(), R[i].second) - Num.begin();
      add(0, N - 1, 1, x);
    } else if (R[i].first == 2) {
      int x = lower_bound(Num.begin(), Num.end(), R[i].second) - Num.begin();
      del(0, N - 1, 1, x);
    } else {
      printf("%I64d\n", ans[1][2]);
    }
  }
  return 0;
}
