#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int G[510][510];
int n, f;
int path[2000];
int degree[510];
int index;
void dfs(int u){
for(int v = 1;v <= n; v++){
if(G[u][v]){
G[u][v]--;
G[v][u]--;
dfs(v);
}
}
path[index++] = u;
}
int main()
{
while(scanf("%d",&f) != EOF){
memset(G,0,sizeof(G));
memset(path,0,sizeof(path));
memset(degree,0,sizeof(degree));
n = 0;
for(int i = 0;i < f; i++){
int a, b;
scanf("%d%d",&a,&b);
G[a][b]++;
G[b][a]++;
degree[a]++;
degree[b]++;
int temp = a < b ? b : a;
n = n < temp ? temp : n;
}
int st = 1;
for(int i = 1;i <= n; i++){
if((degree[i] & 1) == 1){
st = i;
break;
}
}
index = 0;
dfs(st);
for(int i = index-1;i>=0;i--){
printf("%d\n",path[i]);
}
}
return 0;
}
/**************************************************************
Problem: 2054
User: admin
Language: C
Result: Accepted
Time:39 ms
Memory:2172 kb
****************************************************************/