#include <bits/stdc++.h>
using namespace std;
struct node {
  int cnt, sum[5];
} l[100050 * 20];
char str[100050][10];
int p[100050], q[100050], pq[100050], no[100050], ans;
bool cmp(int a, int b) { return p[a] < p[b]; }
bool cmp1(int a, int b) { return a < b; }
int find(int goal) {
  int s, e, mid;
  s = 0, e = ans;
  while (s <= e) {
    mid = (s + e) >> 1;
    if (no[mid] == goal)
      return mid;
    else if (no[mid] > goal)
      e = mid;
    else if (no[mid] < goal)
      s = mid;
  }
}
void build(int num, int s, int e) {
  l[num].cnt = 0;
  for (int i = 0; i < 5; i++) l[num].sum[i] = 0;
  if (s >= e) return;
  int mid = (s + e) >> 1;
  build((num << 1), s, mid);
  build((num << 1 | 1), mid + 1, e);
}
int update(int num, int s, int e, int pos, int color, int k) {
  if (s >= e) {
    l[num].cnt = color;
    l[num].sum[0] = color * k;
    return 1;
  }
  int mid = (s + e) >> 1;
  if (pos <= mid)
    update((num << 1), s, mid, pos, color, k);
  else if (pos > mid)
    update((num << 1 | 1), mid + 1, e, pos, color, k);
  l[num].cnt = l[(num << 1)].cnt + l[(num << 1 | 1)].cnt;
  for (int i = 0; i < 5; i++) {
    l[num].sum[i] =
        l[(num << 1)].sum[i] +
        l[(num << 1 | 1)].sum[((i - l[(num << 1)].cnt) % 5 + 5) % 5];
  }
}
int main() {
  int n, i;
  while (scanf("%d", &n) != EOF) {
    for (ans = 0, i = 0; i < n; i++) {
      scanf("%s", &str[i]);
      if (str[i][0] == 'a') {
        scanf("%d", &p[i]);
        no[ans] = p[i];
        q[ans++] = i;
      } else if (str[i][0] == 'd') {
        scanf("%d", &p[i]);
      }
    }
    sort(q, q + ans, cmp);
    sort(no, no + ans, cmp1);
    build(1, 1, ans);
    for (i = 0; i < ans; i++) pq[q[i]] = i;
    {}
    for (i = 0; i < n; i++) {
      if (str[i][0] == 'a') {
        update(1, 1, ans, pq[i] + 1, 1, p[i]);
      } else if (str[i][0] == 'd') {
        int pos = find(p[i]);
        update(1, 1, ans, pos + 1, 0, p[i]);
      } else if (str[i][0] == 's') {
        printf("%d\n", l[1].sum[2]);
      }
    }
  }
  return 0;
}
