#include<bits/stdc++.h>
using namespace std;
string op[100005];
bool cmp(string a,string b)
{
return a.size()>b.size();
}
map<string,int>pos;
map<char,int>vis;
int a[5005][5005];
int m[1000005];
int main()
{
int n;
cin>>n;
int id;
string ans;
for(int i=1;i<=n;++i)
{
cin>>m[i];
if(m[i]==0)
{
cin>>a[i][0];
if(a[i][0]==-1)
{
id=i;
}
}
for(int j=1;j<=m[i];++j)
{
cin>>a[i][j];
}
}
bool b=0;
while(b==0)
{
int maxx=INT_MIN;
bool f=0;
int idx=id;
for(int i=1;i<=n;++i)
{
if(a[i][m[i]]==idx)
{
if(maxx<m[i]+1)
{
maxx=m[i]+1;
id=i;
}
f=1;
}
}
idx=id;
if(f==0)
{
break;
}
string s=to_string(id);
for(int i=1;i<=m[id];++i)
{
s+=char(a[id][i]+'0');
}
ans=s+ans;
}
for(int i=0;i<ans.size();++i)
{
if(vis[ans[i]]==0)
{
cout<<ans[i]<<' ';
vis[ans[i]]=1;
}
}
return 0;
}