#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;
}