#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=100010;
int n;
int h[N],e[N],ne[N],idx;
bool st[N];
int map[N],kk=2;
void add(int a,int b)
{
e[idx]=b;ne[idx]=h[a];h[a]=idx++;
}
void djstra()
{
int add=1;
st[1]=true;
int t=1;
cout << 1 <<' ';
map[1]=1;
while(t)
{
for(int i=h[t];i!=-1;i=ne[i])
{
if(!st[e[i]])
{
cout << e[i] << ' ';
add++;
st[e[i]]=true;
t=e[i];
map[kk++]=t;
break;
}
t=0;
}
}
cout << endl;
if(add!=n) cout << -1;
else{
int sum=0;
//求最少换几次
cout << sum;
}
}
int main()
{
cin >> n;
memset(h, -1, sizeof h);
for(int i=1;i<=n;i++)
{
int a,b;
cin >> a >> b;
add(i,a);add(i,b);
}
djstra();
}