#include <iostream>
#include<string>
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
 **/
