#include <bits/stdc++.h>
#define int long long
using namespace std;
int x, y;
int q;
struct node {
int num;
int nxt;
};
node l[1000010];
int idx = 1;
map<int, int> mp;
signed main() {
l[1].num = 1;
mp[1] = 1;
cin >> q;
int lst = 1;
for (int i = 1; i <= q; ++i) {
int opt;
cin >> opt;
if (opt == 1) {
cin >> x >> y;
if (lst == x) lst = y;
l[++idx].num = y;
mp[y] = idx;
l[mp[x]].nxt = idx;
} else if (opt == 2) {
cin >> x;
if (x == lst) cout << 0 << "\n";
else
cout << l[l[mp[x]].nxt].num << "\n";
} else {
cin >> x;
int to = l[l[mp[x]].nxt].nxt;
l[mp[x]].nxt = to;
}
}
}
只有第一个点AC……