#include <iostream>
#include <algorithm>
using namespace std;
int n;
const int N=55;
int head[N],nxt[N],ver[N],ans[N];
bool vis[N];
int tot;
void add(int x,int y){
ver[++tot]=y;
nxt[tot]=head[x];
head[x]=tot;
}
void dfs(int x,int deep){
if(x==1&&deep==n+1){
for(int i=1;i<deep;i++) printf("%d ",ans[i]);
exit(0);
}
for(int i=head[x];i;i=nxt[i]){
if(!vis[ver[i]]||(ver[i]==1&&deep==n)){
ans[deep+1]=ver[i];
vis[ver[i]]=1;
dfs(ver[i],deep+1);
vis[ver[i]]=0;
}
}
}
signed main(){
scanf("%d",&n);
int x,y;
while(scanf("%d%d",&x,&y)!=EOF) add(x,y);
ans[1]=1,vis[1]=1;
dfs(1,1);
return 0;
}