#include
#include
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
int n;
cin >> n;
int niza1[n], niza2[n];
for(int i = 0; i < n - 1; i++) {
cin >> niza1[i];
cin >> niza2[i];
}
int iskoristen_par[n];
for(int i = 0; i < n; i++) {
iskoristen_par[i] = 0;
}
int prv = 0;
cout << prv << " " ;
for(int i = 0; i < n - 1; i++) {
int pomosna = -1;
for(int j = 0; j < n - 1; j++) {
if(niza1[j] == prv and iskoristen_par[j] == 0) {
prv = niza2[j];
pomosna = 0;
iskoristen_par[j] = 1;
break;
}
if(niza2[j] == prv and iskoristen_par[j] == 0) {
prv = niza1[j];
iskoristen_par[j] = 1;
pomosna = 0;
break;
}
}
if(pomosna == -1) {
break;
}
cout << prv << " ";
}
int sosedi[n];
prv = n;
sosedi[0] = prv;
int indeks = 1;
for(int i = 0; i < n - 1; i++) {
int pomosna = -1;
for(int j = 0; j < n - 1; j++) {
if(prv == niza1[j] and iskoristen_par[j] == 0) {
prv = niza2[j];
iskoristen_par[j] = 1;
pomosna = 0;
break;
}
if(prv == niza2[j] and iskoristen_par[j] == 0) {
prv = niza1[j];
iskoristen_par[j] = 1;
pomosna = 0;
break;
}
}
if(pomosna == -1) {
break;
}
sosedi[indeks] = prv;
indeks++;
}
for(int i = indeks - 1; i >= 0; i--) {
cout << sosedi[i] << " ";
}
return 0;
}
/*
7
3 6
4 1
5 2
6 1
5 0
4 7
0 5 2 _ _ _ _ 7
**/