#include <iostream>
#include <list>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
list<int> ns;
ns.push_back(1);
int n;
cin >> n;
vector<int> os, n1s, n2s;
for(int i=0; i<n; ++i)
{
int o, n1, n2;
cin >> o;
if(o == 1)
cin >> n1 >> n2;
else
{
cin >> n1;
n2 = -1;
}
os.push_back(o);
n1s.push_back(n1);
n2s.push_back(n2);
}
for(unsigned int i=0; i<os.size(); ++i)
{
list<int>::iterator it;
int o = os[i];
int n1 = n1s[i];
int n2 = n2s[i];
if(o == 1)
{
it = find(ns.begin(), ns.end(), n1);
if(it != ns.end())
{
++it;
ns.insert(it, n2);
}
}
else if(o == 2)
{
it = find(ns.begin(), ns.end(), n1);
if(it != ns.end())
{
++it;
if(it != ns.end())
cout << *it << endl;
else
cout << 0 << endl;
}
}
else
{
it = find(ns.begin(), ns.end(), n1);
if(it != ns.end())
{
++it;
ns.erase(it);
}
}
}
return 0;
}