#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; }