#include <bits/stdc++.h>
using namespace std;
int main()
{
// v.insert((find(v.begin(), v.end(), x) + 1, y)插入
//*(find(v.begin(), v.end(), x) + 1)查找
// v.erase(find(v.begin(), v.end() + 1, x))删除
vector<int> v;
v.push_back(1);
int n;
scanf("%d", &n);
while (n--)
{
int x, y;
int op;
scanf("%d", &op);
if (op == 1)
{
scanf("%d%d", &x, &y);
v.insert((find(v.begin(), v.end(), x) + 1), y);
}
else if (op == 2)
{
scanf("%d", &x);
if (*(find(v.begin(), v.end(), x)) != *(v.end()))
{
printf("%d\n", *(find(v.begin(), v.end(), x) + 1));
}
}
else
{
scanf("%d", &x);
if (*(find(v.begin(), v.end(), x)) != *(v.end()))
{
v.erase(find(v.begin(), v.end() + 1, x));
}
}
}
// for (auto e : v)
// {
// cout << e << endl;
// }
return 0;
}