#include <bits/stdc++.h>
using namespace std;
const int N=505;
int n=500, m;
int g[N][N];
vector<int> ans;
int deg[N];
void dfs(int u){
for(int i=1; i<=n; ++i){
if(g[u][i]){
g[u][i]--;
g[i][u]--;
dfs(i);
}
}
ans.push_back(u);
}
int main(){
memset(g, 0x00, sizeof g);
memset(deg, 0x00, sizeof deg);
cin>>m;
for(int i=0; i<m; ++i){
int a, b; // 读入无向图
cin>>a>>b;
g[a][b]++;
g[b][a]++;
deg[a]++;
deg[b]++;
}
// 从小到大开始找Euler Path
int k=1;
while(!deg[k]) ++k;
for(int i=k; i<=n; ++i){ // 确定起点
if(deg[i]&0x01) {k=i; break;}
}
dfs(k);
for(int i=ans.size()-1; i>=0; --i) cout<<ans[i]<<endl;
return 0;
}