//头一次写,如果不好请见谅
#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;
}