#include <cstddef>
#include <cstdio>
#include <iostream>
#include <vector>
#include <cstdlib>   
#include <algorithm>
#include <functional>

using namespace std;

int main() {
    int q;
    cin >> q;
    char **operate = (char **)malloc(sizeof(char *) * q);
    if(operate == nullptr){
        printf("Failed Malloc!\n");
        return -1;
    }
    for(int i = 0; i < q; i ++){
        operate[i] = (char *)malloc(sizeof(char) * 100);
        if(operate[i] == nullptr){
            printf("Failed Malloc!\n");
            return -1;
        }
    }
    vector<int> v; 


    int c;
    while ((c = getchar()) != '\n' && c != EOF);

    for(int j = 0; j < q; j ++){
        fgets(operate[j], 100, stdin);
    }


    for(int i = 0; i < q; i ++){
       if(operate[i][0] == '1'){
        int temp = strtol(operate[i] + 2, nullptr, 10);
        v.push_back(temp);
       }
       else if(operate[i][0] == '2'){
        if(!v.empty()){
            v.pop_back();
        }
       }
       else if(operate[i][0] == '3'){
        int temp = strtol(operate[i] + 2, nullptr, 10);
        if(temp < v.size() && temp >= 0){
            cout <<v[temp] << endl;
        }
       }
       else if(operate[i][0] == '4'){
        char *p = operate[i] + 2;//第一个数的开始位置
        char *temp;
        int i = strtol(p, &temp, 10);

        if(p == temp){ //没有第一个数
           continue;
        }
        while(*temp == ' ' || *temp == '\t') temp ++;//遇到制表符和空格就探寻下一位
        if(*temp == '\0'){//第二个数不存在
           continue;
        }
        int x = strtol(temp, nullptr, 10);//解析第二个数
        if(i< v.size()){
            v.insert(v.begin() + i + 1, x);
        }
       }
       else if(operate[i][0] == '5'){
        sort(v.begin(),v.end());
       }
       else if(operate[i][0] == '6'){
        sort(v.begin(),v.end(),greater<>());
       }
       else if(operate[i][0] == '7'){
        cout << v.size() << endl;
       }
       else if(operate[i][0] == '8'){
        for (auto it = v.begin(); it != v.end(); ++it) {
        cout << *it << ' ';
       } 
        cout << endl;   
       }
       else{
        printf("Error!\n");
       }
    }
    free(operate);
    return 0;
}