#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:10000000")
using namespace std;
template <typename T>
inline T abs(T a) {
  return ((a < 0) ? -a : a);
}
template <typename T>
inline T sqr(T a) {
  return a * a;
}
const int INF = (int)1E9 + 7;
const long double EPS = 1E-9;
const long double PI = 3.1415926535897932384626433832795;
const int NMAX = 200 * 1000;
int a[NMAX], sza;
int t[NMAX * 4], cnt[NMAX * 4];
long long sum[NMAX * 4][5];
char buf[300];
void upd(int pos, int idx, int lf, int rg) {
  if (lf == rg) {
    t[idx] ^= 1;
    memset(sum[idx], 0, sizeof sum[idx]);
    sum[idx][0] = t[idx] * 1LL * a[pos];
    cnt[idx] = t[idx];
    return;
  }
  int mid = (lf + rg) >> 1;
  if (pos <= mid)
    upd(pos, 2 * idx + 1, lf, mid);
  else
    upd(pos, 2 * idx + 2, mid + 1, rg);
  cnt[idx] = cnt[2 * idx + 1] + cnt[2 * idx + 2];
  for (int i = 0; i < int(5); ++i) {
    long long& ans = sum[idx][i];
    int f = (cnt[2 * idx + 1]) % 5;
    f = (i - f + 5) % 5;
    ans = sum[2 * idx + 1][i] + sum[2 * idx + 2][f];
  }
}
void change(int val) {
  int pos = lower_bound(a, a + sza, val) - a;
  upd(pos, 0, 0, sza - 1);
}
inline long long getSum() { return sum[0][2]; }
int main() {
  int n;
  scanf("%d", &n);
  gets(buf);
  vector<pair<int, int> > q;
  for (int i = 0; i < int(n); ++i) {
    gets(buf);
    if (buf[0] == 'a') {
      int val;
      sscanf(buf, "add %d", &val);
      q.push_back(make_pair(1, val));
      a[sza++] = val;
    }
    if (buf[0] == 'd') {
      int val;
      sscanf(buf, "del %d", &val);
      q.push_back(make_pair(-1, val));
      a[sza++] = val;
    }
    if (buf[0] == 's') {
      q.push_back(make_pair(-1, -1));
    }
  }
  sort(a, a + sza);
  sza = unique(a, a + sza) - a;
  for (int i = 0; i < int(n); ++i) {
    if (q[i] == pair<int, int>(-1, -1)) {
      printf("%I64d\n", getSum());
      continue;
    }
    if (q[i].first == 1) {
      change(q[i].second);
    } else {
      change(q[i].second);
    }
  }
  return 0;
}
