//用TreeMap实现双端优先队列。TreeMap默认key自然排序。
//查询最大用lastKey,查询最小firstKey。
//删除时value--,value==0时,删除key。
//字节流出入输出节省时间。
import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw=new PrintWriter(System.out);
        StreamTokenizer st=new StreamTokenizer(br);
        st.nextToken();
        int N=(int)st.nval;
        TreeMap<Integer,Integer> tm=new TreeMap<>();
        while(N-->0){
            st.nextToken();
            int temp=(int)st.nval;
            switch(temp){
                case 1:
                    st.nextToken();
                    int n=(int)st.nval;
                    tm.put(n,tm.getOrDefault(n,0)+1);
                    break;
                case 2:
                    pw.println(tm.firstKey());
                    break;
                case 3:
                    pw.println(tm.lastKey());
                    break;
                case 4:
                    int key=tm.firstKey();
                    int value =tm.get(key)-1;
                    if(value==0){
                        tm.remove(key);
                    }else{
                        tm.put(key,value);
                    }
                    break;
                case 5:
                    int key0=tm.lastKey();
                    int value0 =tm.get(key0)-1;
                    if(value0==0){
                        tm.remove(key0);
                    }else{
                        tm.put(key0,value0);
                    }
                    break;
            }
        }
        pw.flush();
    }
}