#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
class Tree{
public:
int N;
vector<int> parent;
vector<vector<int> > child;
Tree():N(0){};
Tree(int n):N(n){
parent.resize(N+1,-1);
child.resize(N);
}
void print(){
for(int i=0; i<N+1; i++){
if(parent[i] != -1)
printf("%d\n",parent[i]);
}
}
};
class Graph{
public:
int N;
vector<vector<int> > adj;
Graph():N(0){};
Graph(int n):N(n){adj.resize(N+1);}
void addNode(int x, int y){
adj[x].push_back(y);
adj[y].push_back(x);
}
void sortNode(){
for(int i=0; i<N+1; i++)
sort(adj[i].begin(), adj[i].end());
}
Tree makeTree(int root){
Tree T(N+1);
queue<int> q;
vector<bool> check(N,false);
q.push(root);
check[root] = true;
while(!q.empty()){
int cur = q.front();
q.pop();
for(int next : adj[cur]){
if(check[next] == false){
check[next] = true;
q.push(next);
T.parent[next] = cur;
T.child[cur].push_back(next);
}
}
}
return T;
}
};
int main() {
int n;
scanf("%d",&n);
Graph G(n);
for(int i=0; i<n; i++){
int a,b;
scanf("%d %d",&a,&b);
G.addNode(a,b);
}
G.sortNode();
Tree T = G.makeTree(1);
T.print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBUcmVlewpwdWJsaWM6CiAgIGludCBOOwogICB2ZWN0b3I8aW50PiBwYXJlbnQ7CiAgIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IGNoaWxkOwogICAKICAgVHJlZSgpOk4oMCl7fTsKICAgVHJlZShpbnQgbik6TihuKXsKICAgICAgcGFyZW50LnJlc2l6ZShOKzEsLTEpOwogICAgICBjaGlsZC5yZXNpemUoTik7CiAgIH0KICAgCiAgIHZvaWQgcHJpbnQoKXsKICAgICAgZm9yKGludCBpPTA7IGk8TisxOyBpKyspewogICAgICAgICBpZihwYXJlbnRbaV0gIT0gLTEpCiAgICAgICAgICAgIHByaW50ZigiJWRcbiIscGFyZW50W2ldKTsKICAgICAgfQogICB9Cn07CgpjbGFzcyBHcmFwaHsKcHVibGljOgogICBpbnQgTjsKICAgdmVjdG9yPHZlY3RvcjxpbnQ+ID4gYWRqOwogICAKICAgR3JhcGgoKTpOKDApe307CiAgIEdyYXBoKGludCBuKTpOKG4pe2Fkai5yZXNpemUoTisxKTt9CiAgIAogICB2b2lkIGFkZE5vZGUoaW50IHgsIGludCB5KXsKICAgICAgYWRqW3hdLnB1c2hfYmFjayh5KTsKICAgICAgYWRqW3ldLnB1c2hfYmFjayh4KTsKICAgfQogICAKICAgdm9pZCBzb3J0Tm9kZSgpewogICAgICBmb3IoaW50IGk9MDsgaTxOKzE7IGkrKykKICAgICAgICAgc29ydChhZGpbaV0uYmVnaW4oKSwgYWRqW2ldLmVuZCgpKTsKICAgfQogICAKICAgVHJlZSBtYWtlVHJlZShpbnQgcm9vdCl7CiAgICAgIFRyZWUgVChOKzEpOwogICAgICBxdWV1ZTxpbnQ+IHE7CiAgICAgIHZlY3Rvcjxib29sPiBjaGVjayhOLGZhbHNlKTsKICAgICAgCiAgICAgIHEucHVzaChyb290KTsKICAgICAgY2hlY2tbcm9vdF0gPSB0cnVlOwogICAgICAKICAgICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgIGludCBjdXIgPSBxLmZyb250KCk7CiAgICAgICAgIHEucG9wKCk7CiAgICAgICAgIAogICAgICAgICBmb3IoaW50IG5leHQgOiBhZGpbY3VyXSl7CiAgICAgICAgICAgIGlmKGNoZWNrW25leHRdID09IGZhbHNlKXsKICAgICAgICAgICAgICAgY2hlY2tbbmV4dF0gPSB0cnVlOwogICAgICAgICAgICAgICBxLnB1c2gobmV4dCk7CiAgICAgICAgICAgICAgIFQucGFyZW50W25leHRdID0gY3VyOwogICAgICAgICAgICAgICBULmNoaWxkW2N1cl0ucHVzaF9iYWNrKG5leHQpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gVDsKICAgfQp9OwoKCmludCBtYWluKCkgewogICAKICAgaW50IG47CiAgIHNjYW5mKCIlZCIsJm4pOwogICAKICAgR3JhcGggRyhuKTsKICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgaW50IGEsYjsKICAgICAgc2NhbmYoIiVkICVkIiwmYSwmYik7CiAgICAgIEcuYWRkTm9kZShhLGIpOwogICB9CiAgIEcuc29ydE5vZGUoKTsKICAgVHJlZSBUID0gRy5tYWtlVHJlZSgxKTsKICAgVC5wcmludCgpOwogICAKICAgcmV0dXJuIDA7Cn0=