#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+7;
vector<int>a[maxn];
int t[maxn],r[maxn],rd[maxn];
queue<int>p,q;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int id;
cin>>id;
cin>>t[id];
int x;
cin>>x;
while(x!=0){
a[x].push_back(id);
rd[id]++;
cin>>x;
}
}
q.push(1);
while(!q.empty()){
int now=q.front();
q.pop();
r[now]+=t[now];
for(int i=0;i<a[now].size();i++){
int to=a[now][i];
rd[to]--;
if(rd[to]==0){
r[to]=max(r[to],r[now]);
q.push(to);
}
}
}
int ans=0;
for(int i=1;i<=n;i++)ans=max(ans,r[i]);
cout<<ans<<endl;
return 0;
}