#include <bits/stdc++.h>
const int inf = 1039074182;
using namespace std;
const int V = 300;
char c[15];
int n;
int b[100018 / V + 1][V + 1];
pair<char, int> query[100018];
vector<int> vec;
map<int, int> id;
int len[100018 / V + 1];
long long sum[100018 / V + 1][5];
void add(int k, int x) {
  b[k][len[k]++] = x;
  inplace_merge(b[k], b[k] + len[k] - 1, b[k] + len[k]);
  for (int i = 0; i < 5; i++) {
    sum[k][i] = 0;
  }
  for (int i = 0; i < len[k]; i++) {
    sum[k][i % 5] += b[k][i];
  }
}
void del(int k, int x) {
  int place;
  for (int i = 0; i < len[k]; i++) {
    if (b[k][i] == x) {
      place = i;
      break;
    }
  }
  for (int i = place; i < len[k] - 1; i++) {
    b[k][i] = b[k][i + 1];
  }
  len[k]--;
  for (int i = 0; i < 5; i++) {
    sum[k][i] = 0;
  }
  for (int i = 0; i < len[k]; i++) {
    sum[k][i % 5] += b[k][i];
  }
}
long long cal() {
  long long res = 0;
  long long offset = 2;
  for (int i = 0; i < 100018 / V; i++) {
    if (len[i] > V) cout << (1 / ((int)(offset / 5))) << endl;
    res += sum[i][offset];
    offset += len[i];
    offset %= 5;
  }
  return res;
}
int main() {
  int q, x;
  cin >> q;
  for (int i = 0; i < q; i++) {
    scanf("%s", c);
    if (c[0] != 's') scanf("%d", &x);
    query[i] = make_pair(c[0], x);
  }
  for (int i = 0; i < q; i++) {
    if (query[i].first == 'a') vec.push_back(query[i].second);
  }
  sort(vec.begin(), vec.end());
  n = vec.size();
  for (int i = 0; i < n; i++) {
    id[vec[i]] = i;
  }
  for (int i = 0; i < q; i++) {
    if (query[i].first == 'a') {
      add(id[query[i].second] / V, query[i].second);
    } else if (query[i].first == 'd') {
      del(id[query[i].second] / V, query[i].second);
    } else {
      printf("%I64d\n", cal());
    }
  }
  return 0;
}
