//用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();
}
}