1 #include<iostream>
2 #include<cstdio>
3 using namespace std;
4 #define N 2010
5 int map[N][N]; //两两之间的关系
6 int du[N]; //度数
7 int ans[N],now;
8 int n,m,begn,maxn=0;
9 void dfs(int a)
10 {
11 for(int i=1;i<=maxn;++i)
12 {
13 if(map[a][i]>0)
14 {
15 map[a][i]--;
16 map[i][a]--;
17 dfs(i);
18 }
19 }
20 ans[++now]=a;
21 }
22 int main()
23 {
24 cin>>m;
25 for(int i = 1;i <= m;++i)
26 {
27 int x,y;
28 scanf("%d%d",&x,&y);
29 map[x][y]++;
30 map[y][x]++;
31 du[x]++;
32 du[y]++;
33 maxn=max(maxn,max(x,y));
34 }
35 for(int i=1;i<=maxn;++i) //找到奇数度的点作为起点
36 {
37 if(du[i]%2==1)
38 {
39 begn=i;break;
40 }
41 }
42 if(!begn) //若没有找最小的点
43 {
44 for(int i=1;i<=maxn;++i)
45 if(du[i]>0)
46 {
47 begn=i;break;
48 }
49 }
50 dfs(begn); //搜索
51 for(int i=now;i>=1;--i)
52 {
53 printf("%d\n",ans[i]);
54 }
55 return 0;
56 }