#include<bits/stdc++.h>
using namespace std;
int mp[505][505],ed[505][505],mpi[505][505],deg[505],ans[505],m,co=0;
void dfs(int now,int cnt){
if(cnt==m) co=1;
for(int i=1;i<=deg[now];i++){
int u=ed[now][i];
if((mpi[now][u]==mp[now][u])||(mpi[u][now]==mp[u][now])) continue;
mpi[now][u]++,mpi[u][now]++;
ans[cnt]=u;
dfs(u,cnt+1);
if(co) return;
mpi[now][u]--,mpi[u][now]--;
}
}
int main(){
int x1,x2,q=1;
cin>>m;
for(int i=0;i<m;i++){
cin>>x1>>x2;
deg[x1]++;
deg[x2]++;
mp[x1][x2]++;
mp[x2][x1]++;
}
for(int i=1;i<=500;i++){
for(int j=1;j<=500;j++){
if(!mp[i][j]) continue;
for(int l=1;l<=mp[i][j];l++) ed[i][q++]=j;
}
q=1;
}
int st=0,k=0;
for(int i=1;i<=500;i++){
if(deg[i]&&!k) k=i;
if(deg[i]%2&&!st) st=i;
}
if(st){
dfs(st,0);
cout<<st;
}else{
dfs(k,0);
cout<<k;
}
for(int i=0;i<m;i++) cout<<endl<<ans[i];
return 0;
}