#include <queue>
#include <iostream>
#include <vector>
#include <cstring>
#include <iostream>
#include <set>
#include <cstring>
#include <stack>
#include <algorithm>
#include <map>
#include <cmath>
//#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
const ll INF = 3e16 + 10;
const int max_point = 10000000;
vector<int> graph[maxn];

void dfs(int node, int parent) {
    cout << node + 1 << endl;
    for(int i = 0; i < (int) graph[node].size(); i++) {
        int neighbour = graph[node][i];
        if(neighbour != parent) {
            dfs(neighbour, node);
        }
    }
}
int main() {
    ios_base::sync_with_stdio(false);
    int n;
    cin >> n;
    
    for(int i = 0; i < n - 1; i++) {
        int a, b;
        cin >> a >> b;
        graph[a].push_back(b);
        graph[b].push_back(a);
        
    }
    dfs(0, -1);
    return 0;
}
/*
 1: 10, 40
 3: 20
 
 
 **/
