#include<bits/stdc++.h>
using namespace std;
int mu[150][150];
int vis[150];
bool vvis[150];
int to[150];
int n;
void dfs(int start,int end,int nnum){
if(start==end){
to[end]=nnum*vis[end];
return;
}
for(int i=1;i<=n;i++){
if(vvis[i]==false&&mu[start][i]!=0){
vvis[i]=true;
dfs(i,end,nnum+1);
vvis[i]=false;
}
}
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
int x,y,z;
for(int i=1;i<=n;i++){
cin>>x>>y>>z;
vis[i]=x;
if(y){
mu[i][y]=1;
mu[y][i]=1;
}
if(z){
mu[i][z]=1;
mu[z][i]=1;
}
}
int num,minn=114514;
for(int i=1;i<=n;i++){
memset(to,0,sizeof(to));
memset(vvis,0,sizeof(vvis));
for(int j=1;j<=n;j++){
if(i!=j){
vvis[i]=true;
dfs(i,j,0);
}
}
for(int i=1;i<=n;i++){
num+=to[i];
}
minn=min(num,minn);
num=0;
}
cout<<minn;
return 0;
}
%dalao