//头一次写,如果不好请见谅
#include<bits/stdc++.h>
using namespace std;
int f[10010];//使用数组,数组标号为该数的位置,数组存放的值为下一个数的位置
int main(){
int n,h,k;cin>>n>>h;
int zui=h;//用于记录最后一个数是多少
int a,b;
for(int i=0;i<n-1;i++){
scanf("%d%d",&a,&b);//每次读取两个数字
if(b==zui){
f[zui]=a;//如果b为最后一个数
zui=a;//更新zui
}else {
f[a]=f[b];
f[b]=a;//和链表插入一个原理
}
}
int wei=h;//用与记录位置,从头节点开始
cin>>k;
if(h!=k)printf("%d ",h);//判断第一个是否需要删除
for(int i=0;i<n-1;i++){//插入了n-1个数字
if(f[wei]==k){wei=f[wei];}//如果遇到需要删除的值,只更新wei,但不输出
else printf("%d ",f[wei]),wei=f[wei];
}
return 0;
}