import java.util.*;
import java.io.*;

public class Main{

    BufferedReader in;
    StringTokenizer str = null;
    PrintWriter out;

    private String next() throws Exception{
    	while (str == null || !str.hasMoreElements())
    	    str = new StringTokenizer(in.readLine());
    	return str.nextToken();
    }
    
    private int nextInt() throws Exception{
	return Integer.parseInt(next());
    }
    
    public void run() throws Exception{
    	in = new BufferedReader(new InputStreamReader(System.in));
    	out = new PrintWriter(System.out);
	
	/*
	Random rnd = new Random();
	for(int i=0;i<10;i++){
	    int x = rnd.nextInt(16) + 1;
	    System.out.println(x + " " + Integer.toString(x,2) + " " + Integer.highestOneBit(x));
	}
	*/
	
	int n = nextInt();
	Map<Integer, Integer> map = new HashMap<Integer, Integer>();
	int []type = new int[n];
	int []val = new int[n];
	for(int i=0;i<n;i++){
	    String op = next();
	    if (op.equals("sum")) {
		type[i] = 2;
	    }else if (op.equals("add")){
		val[i] = nextInt();
		type[i] = 1;
		map.put(val[i], 0);
	    }else{
		val[i] = nextInt();
		type[i] = 0;
		map.put(val[i], 0);
	    }
	}
	
	int a[] = new int[map.size()];
	int yk = 0;
	for(int i : map.keySet()) a[yk++] = i;
	Arrays.sort(a);
	yk = 0;
	for(int i : a) map.put(i, yk++);
	
	SegmentTree tree = new SegmentTree(a);
	for(int i=0;i<n;i++){
	    if (type[i] == 0){
		tree.update(map.get(val[i]), -1);
	    }else if (type[i] == 1){
		tree.update(map.get(val[i]), 1);
	    }else{
		out.println(tree.mod[1][2]);
	    }
	}
        out.close();
    }
    
    class SegmentTree{
	int size[];
	long mod[][];
	int n;
	public SegmentTree(int []a){
	    //n = Integer.highestOneBit(Math.max(a.length, 1));
	    n = Math.max(1, a.length);
	    size = new int[4*n];
	    mod = new long[4*n][5];
	    build(1, 0, n-1, a);
	    
	    //n = Math.max(1, a.length);
	}
	
	private void build(int v, int tl, int tr, int []a){
	    if (tl == tr){
		if (tl >= a.length) return;
		mod[v][0] = a[tl];
		return;
	    }
	    int tm = (tl + tr) >> 1;
	    build(2*v, tl, tm, a);
	    build(2*v+1, tm+1, tr, a);
	}
	
	public void update(int pos, int d){
	    update(1, 0, n-1, pos, d);
	}
	
	private void update(int v, int tl, int tr, int pos, int d){
	    if (tl == tr){
		size[v]+=d;
		return;
	    }
	    int tm = (tl + tr) >> 1;
	    if (tm >= pos) update(2*v, tl, tm, pos, d);
	    else update(2*v+1, tm+1, tr, pos, d);
	    
	    Arrays.fill(mod[v], 0);
	    if (size[2*v] > 0){
		for(int i=0;i<5;i++){
		    mod[v][i] = mod[2*v][i];
		}
	    }
	    
	    if(size[2*v+1] > 0){
		for(int i=0;i<5;i++){
		    mod[v][(i+size[2*v])%5]+=mod[2*v+1][i];
		}
	    }
	    
	    size[v] = size[2*v] + size[2*v+1];
	}
    }

    public static void main(String args[]) throws Exception{
	new Main().run();
    }
}