#include<iostream>
#include<algorithm>
using namespace std;
typedef int Element;
bool cmp(Element a,Element b)
{
    return a>b;
}
class List
{
    public:
    List()
    {
        this->p=new Element[10000];
        this->size=100;
        top=0;
    }
    ~List()
    {
        delete []p;
    }
    int gettop()
    {
        return top;
    }
    void push_back(int e)
    {
        p[top++]=e;
    }
    void pop_back()
    {
        top--;
    }
    int print_pos(int e)
    {
        return p[e];
    }
    void cr(int e,int pos)
    {
        for(int i=top;i>pos+1;i--)
        {
            p[i]=p[i-1];
        }
        p[pos+1]=e;
        top++;
    }
    void sort1()
    {
        sort(p,p+top);
    }
    void sort2()
    {
        sort(p,p+top,cmp);
    }
    void print()
    {
        for(int i=0;i<top;i++)
        {
            if(i) cout<<" ";
            cout<<*(p+i);
        }
        cout<<endl;
    }
    private:
    Element *p;
    int size;
    int top;
};
int main()
{
    int n;
    cin>>n;
    List L;
    while(n--)
    {
        int a;
        cin>>a;
        switch(a)
        {
            case 1:
            {
                int e;
                cin>>e;
                L.push_back(e);
            }
            break;
            case 2:
            {
                L.pop_back();
            }
            break;
            case 3:
            {
                int e;
                cin>>e;
                cout<<L.print_pos(e)<<endl;
            }
            break;
            case 4:
            {
                int i,x;
                cin>>i>>x;
                L.cr(x,i);
            }
            break;
            case 5:L.sort1();
            break;
            case 6:L.sort2();
            break;
            case 7:cout<<L.gettop()<<endl;
            break;
            case 8:L.print();
            break;
            default:break;
        }
    }
    return 0;
}