#include <bits/stdc++.h>
using namespace std;
using ll = long long ;
using vi = vector <int> ;
using vll = vector <ll> ;
using pii = pair<int,int> ;
using pll = pair<ll,ll> ;
#define st first
#define nd second
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)(x).size()
#define ndl '\n'
#define dbg_vec(x) cout << #x << " : " ; for(auto a : (x) ) cout << a << ' ' ; cout << endl ;
#define DEBUG
#ifdef DEBUG
#define dbg(x) cout << #x << " = " << x << endl ;
#else
#define dbg(x)
#endif
const int maxn = 5007 , INFI = 1e9+777 ;
int N , M ;
vi adj[maxn] ;
bool vis[maxn] ;
ll oblicz( int start ){
ll sum = 0 , cnt = 0 ;
queue<pii> q ; q.push({start,1}) ;
while(!q.empty()){
auto[v,dyst] = q.front() ;
q.pop() ;
vis[v] = 1 ;
cnt ++ ;
sum += dyst ;
for(auto u : adj[v] ){
if(vis[u]) continue;
vis[u] = 1 ;
q.push({u,dyst+1}) ;
}
}
fill(vis,vis+N+7,0) ;
return (cnt!=N? INFI : sum );
}
int main(){
ios_base::sync_with_stdio(false) ; cin.tie(0) ;
cin >> N ;
for(int i=1;i<=N;i++){
int ile ; cin >> ile ;
for(int j=1;j<=ile;j++){
int par ; cin >> par ;
adj[par].push_back(i) ;
}
}
ll bans = INFI ;
for(int i=1;i<=N;i++){
ll res = oblicz(i) ;
bans = min ( bans , res ) ;
}
cout << bans ;
return 0 ;
}