#include <bits/stdc++.h>

#define Tree int h,int l,int r
#define Left (h<<1),l,(l+r)>>1
#define Right ((h<<1)|1),((l+r)>>1)+1,r

using namespace std;
const int N=1e5+5;

int n,x[N];
string s[N];
int v[6*N][6],tot[6*N];
vector < int > g;
map < int , int > f;

int idx,type;
void Upd(Tree) {
    if (r<idx || idx<l) return;
    if (l==idx && r==idx) {
        if (!type)
            tot[h]++,v[h][0]=l;
                else
            tot[h]--,v[h][0]=0;
        return;
    }
    Upd(Left),Upd(Right);
    tot[h]=tot[(h<<1)]+tot[((h<<1)|1)];
    int z=tot[(h<<1)]%5;
    for (int i=0; i<5; i++)
        v[h][i]=v[(h<<1)][i]+v[((h<<1)|1)][(i+(5-tot[(h<<1)]%5))%5];
}

main () {
    cin>>n;

    for (int i=1; i<=n; i++) {
        cin>>s[i];
        if (s[i][0]!='s') {
            cin>>x[i];
            g.push_back(x[i]);
        }
    }

    sort(g.begin(),g.end());
    g.erase(unique(g.begin(),g.end()),g.end());

    for (int i=0; i<g.size(); i++)
        f[g[i]]=i+1;
    for (int i=1; i<=n; i++)
        if (s[i][0]!='s') x[i]=f[x[i]];

    for (int i=1; i<=n; i++) {
        if (s[i][0]=='s') cout<<v[1][2]<<"\n";
            else
        if (s[i][0]=='a')
            idx=x[i],type=0,Upd(1,1,n);
                else
            idx=x[i],type=1,Upd(1,1,n);
    }
}