#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=10010,inf=1e18;
int n;
struct node{
int len,cnt=0;
vector<int> v;
}vt[N];
int bfs(){
int ans=0;
vector<int> q;
for(int i=1;i<=n;++i){
if(!vt[i].cnt) q.push_back(i);
}
while(!q.empty()){
vector<int> p=q;
int x=inf;
for(auto i:p){
x=min(vt[i].len,x);
}
ans+=x;
int tmp=0;
for(int i=0;i<p.size();++i){
vt[p[i]].len-=x;
if(vt[p[i]].len<=0){
q.erase(q.begin()+i+tmp++);
for(auto j:vt[p[i]].v){
vt[j].cnt--;
if(vt[j].cnt==0) q.push_back(j);
}
}
}
}
return ans;
}
signed main(){
cin>>n;
int m=n;
while(m--){
int i,t,j;
cin>>i>>t;
vt[i].len=t;
while(cin>>j){
if(!j) break;
vt[j].v.push_back(i);
vt[i].cnt++;
}
}
cout<<bfs();
return 0;
}