#include<bits/stdc++.h>
#include<vector>
using namespace std;
int main() {
vector<int> a; // 维护的整数序列
int q;
cin >> q;
for(int op_idx = 1; op_idx <= q; op_idx++) { // 变量名改为op_idx,避免和序列下标混淆
int t;
cin >> t;
switch(t) {
case 1: { // 加{}限定作用域,避免switch跳转问题
int x;
cin >> x;
a.push_back(x); // 末尾添加元素
break;
}
case 2:
a.pop_back(); // 删除末尾元素
break;
case 3: {
int i;
cin >> i;
cout << a[i] << endl; // 输出指定下标元素,加换行
break; // 补充break,避免穿透
}
case 4: {
int y,m;
cin>>y>>m;
a.push_back(0);
int len=a.size();
for(int j=len-1;j>y;j--){
a[j]=a[j-1];
}
a[y+1]=m;
break;
}
case 5:
sort(a.begin(), a.end()); // 升序排序
break;
case 6:
sort(a.begin(), a.end());
reverse(a.begin(), a.end()); // 降序排序(先升序再反转)
break;
case 7:
cout << a.size() << endl; // 输出长度,加换行
break;
case 8: {
// 遍历序列,输出所有元素(空格分隔)
for(int k = 0; k < a.size(); k++) { // 边界改为k < a.size()
if(k > 0) cout << " "; // 除第一个元素外,前面加空格
cout << a[k]; // 用k作为下标,而非op_idx
}
cout << endl; // 换行
break;
}
}
}
return 0;
}