#include<bits/stdc++.h>
using namespace std;
int m,u,v,s[1010][1010],du[1010],cnt_ji,start = 0,cnt[1010],maxx = -999;
stack<int> sta;
void dfs(int x)
{
for (int i = 1;i <= maxx;i++)
{
if (s[x][i])
{
s[x][i] = 0;
s[i][x] = 0;
dfs(i);
}
}
sta.push(x);
}
int main()
{
cin >> m;
for (int i = 1;i <= m;i++)
{
cin >> u >> v;
s[u][v] = 1;
s[v][u] = 1;
du[u]++;
du[v]++;
maxx = max(u,max(maxx,v));
}
for (int i = 1;i <= m;i++)
{
if (du[i] % 2 == 1)
{
cnt[cnt_ji] = i;
cnt_ji++;
}
}
if (cnt_ji == 2)
{
start = min(cnt[0],cnt[1]);
}
if(cnt_ji != 2)
{
for(int i = 1;i <= m;i++)
{
if(du[i])
{
start = i;
break;
}
}
}
dfs(start);
while(!sta.empty())
{
cout << sta.top() << endl;
sta.pop();
}
return 0;
}