#include #include #include using namespace std; int M[100001]; int boss; void change(int x) { M[boss]=x; M[x]=0; } int conflict(int x, int y) { vector A; int r=M[x]; if(!M[x]||!M[y]) return -1; while(r) { if(r==y) return -1; A.push_back(r); r=M[r]; } sort(A.begin(), A.end()); r=M[y]; while(r) { if(r==x) return -1; if(binary_search(A.begin(), A.end(), r)) { return r; } } } int main() { int n, m, x, y, a; cin>>n>>m; for(int i=1; i>x>>y; M[y]=x; } for(int i=1; i<=m; ++i) { cin>>a; if(a==1) { cin>>x; change(x); } else { cin>>x>>y; cout<