#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=l;i<=r;++i)
const int N=1e4+24;
using namespace std;
vector<int> linker[N];
int mem[N];
int a[N];
int n;
int dfs(int u){
int& ans=mem[u];
if(ans!=0)
return ans;
for(auto& v:linker[u])
ans=max(ans,dfs(v));
ans+=a[u];
return ans;
}
signed main(){
memset(mem,0,sizeof(mem));
cin>>n;
rep(i,1,n){
int id;
cin>>id>>a[i];
int pre;
while(1){
cin>>pre;
if(pre==0)
break;
linker[pre].push_back(id);
}
}
int ans=-1;
rep(i,1,n)
ans=max(ans,dfs(i));
cout<<ans;
}
初始化值建议为零,不然ans应该处理为零