#include<bits/stdc++.h>
using namespace std;
const int MAXSIZE=10000;
struct node
{
int val;
int id;
int next;
}staticlist[MAXSIZE];
void insert(int num,node nd,int start){//在链表的第num个节点后面插入node节点
if(num<=0) return;
int cnt=1;
while(staticlist[start].next!=0){
if(cnt!=num){
cnt++;
start=staticlist[start].next;
}else{
nd.next=staticlist[start].next;
staticlist[start].next=nd.id;
return;
}
}
return;
}
void delet(int num,int start){//将链表中第num个后面的节点删除掉
if(num<=0) return;
int cnt=1;
while(staticlist[start].next!=0){
if(cnt!=num){
cnt++;
start=staticlist[start].next;
}else{
int temp=staticlist[start].next;
staticlist[start].next=staticlist[temp].id;
return;
}
}
return;
}
int search(int num,int start){//找到第num个节点并返回该节点的数值,没找到返回-1
if(num<=0) return -1;
int cnt=1;
while(staticlist[start].next!=0){
if(cnt!=num){
cnt++;
start=staticlist[start].next;
}else{
return staticlist[start].val;
}
}
return -1;
}
int main(){
int n;cin>>n;//总共n个节点
int startid=0;
for(int i=0;i<n;i++){
int curid,value,nextid;
cin>>curid>>value>>nextid;//
if(i==0) startid=curid;
staticlist[curid].id=curid;
staticlist[curid].val=value;
staticlist[curid].next=nextid;
}
node nd=new node;
nd.val=999;
nd.id=1314;
nd.next=0;
insert(1,nd,startid);
delet(2,startid);
cout<<search(3,startid)<<endl;
return 0;
}