#include <iostream>
#include <vector>
using namespace std;
vector<int> vt[111111];
int vis[111111];
vector<int> vt1;
int ans1;
int ans2;
void dfs(int x,int y)
{
if(x>ans1)
{
ans1=x;
ans2=y;
}
for(int i=0;i<vt[y].size();i++)
{
dfs(x+1,vt[y][i]);
}
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int k;
cin>>k;
for(int j=0;j<k;j++)
{
int t;
cin>>t;
vis[t]=1;
vt[i].push_back(t);
}
}
for(int i=1;i<=n;i++)
{
if(!vis[i])
vt1.push_back(i);
}
ans1=-1;
for(int i=0;i<vt1.size();i++)
{
dfs(1,vt1[i]);
}
cout<<ans2<<endl;
return 0;
}