#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
int n;
int cnt;
queue<int> q;
struct node{
int u;
int v;
int nxt;
}a[100*100*100];
int du[106];
int fis[106];
void add(int u,int v)
{
cnt++;
a[cnt].u=u;
a[cnt].v=v;
a[cnt].nxt=fis[u];
fis[u]=cnt;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int x;
while(cin>>x)
{
if(x==0)
{
break;
}
add(i,x);
du[x]++;
}
}
int s;
for(int i=1;i<=n;i++)
{
if(du[i]==0)
{
s=i;
break;
}
}
q.push(s);
while(q.size())
{
int x=q.front();
q.pop();
cout<<x<<' ';
for(int e=fis[x];e;e=a[e].nxt)
{
du[a[e].v]--;
if(du[a[e].v]==0)
{
q.push(a[e].v);
}
}
}
return 0;
}