#include <stdio.h>
#include <vector>
using namespace std;
int T[500003][2],W[500005],ile[500005],d,s,obr;
vector <int> V[500003];
bool ok;
bool byl[500005];
void oblicz(int i);
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
scanf("%d %d",&T[i][0],&T[i][1] );
if(T[i][0] == T[i][1] ){ V[T[i][0]] . push_back(i); ile[T[i][0] ]++; continue;}
V[T[i][0]] . push_back(i);
V[T[i][1]] . push_back(i);
ile[T[i][0] ]++;
ile[T[i][1] ]++;
}
ok = 1;
for(int i=1; i<=n ;i++)
{
if( ile[i] == 1)
{
if( W[ V[i][0] ] ) {ok=0; break; }
s = V[i][0];
W[ s ] = i;
ile[i]--;
if( T[s][0] != i)
{
d = V [ T [ s ][0] ] . size();
for(int a=0; a<d;a++)
{
if(V [ T[ s ][0] ][a] == s)
{
V [ T [ s ][0] ] . erase ( V [ T [ s ][0] ] .begin()+a, V [ T [ s ][0] ] .begin()+a + 1);
break;
}
}
ile[ T[s][0] ]--;
obr = T[s][0];
while(ile[ obr ]==1 && ok) oblicz( obr );
}
else
{
d = V [ T [ s ][1] ] . size();
for(int a=0; a<d;a++)
{
if(V [ T[ s ][1] ][a] == s)
{
V [ T [ s ][1] ] . erase ( V [ T [ s ][1] ] .begin()+a, V [ T [ s ][1] ] .begin()+a + 1 );
break;
}
}
ile[T[s][1] ]--;
obr = T[s][1];
while (ile[ obr ]==1 && ok) oblicz( obr );
}
}
// else if(ile[i] == 0 && !W[ ] ) {ok = 0; break;}
}
for(int i=1; i<=n; i++)
{
if(!W[i])
{
if( T[i][0] < T[i][1] )
{
W[i] = T[i][0];
byl[T[i][0] ] = 1;
d = V[ W[i] ] .size();
for(int a=0; a<d; a++)
{
if( V[ W[i] ][a] == i )
{
V [ W[i] ] . erase ( V [ W[i] ] .begin()+a, V [ W[i] ] .begin()+a + 1);
break;
}
}
s = V[ W[i] ][0];
if( T[s][0] == T[i][0] )
{
W[s] = T[s][1];
byl[s] = 1;
}
else
{
W[s] = T[s][0];
byl[s] = 1;
}
//d = V[s].size();
// if ( ile[ T[i][0] ] )
}
else
{
W[i] = T[i][1];
byl[T[i][1] ] = 1;
}
}
}
if(!ok)
{
puts("NIE");
}
else
{
for(int j=1; j<=n; j++)
{
printf("%d ",W[j]);
}
}
}
void oblicz(int i)
{
if( W[ V[i][0] ] ) {ok=0; return; }
s = V[i][0];
W[ s ] = i;
ile[i]--;
if( T[s][0] != i)
{
d = V [ T [ s ][0] ] . size();
for(int a=0; a<d;a++)
{
if(V [ T[ s ][0] ][a] == s)
{
V [ T [ s ][0] ] . erase ( V [ T [ s ][0] ] .begin()+a, V [ T [ s ][0] ] .begin()+a + 1);
break;
}
}
ile[T[s][0] ]--;
obr = T[s][0] ;
}
else
{
d = V [ T [ s ][1] ] . size();
for(int a=0; a<d;a++)
{
if(V [ T[ s ][1] ][a] == s)
{
V [ T [ s ][1] ] . erase ( V [ T [ s ][1] ] .begin()+a, V [ T [ s ][1] ] .begin()+a + 1 );
break;
}
}
ile[T[s][1] ]--;
obr = T[s][1] ;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgVFs1MDAwMDNdWzJdLFdbNTAwMDA1XSxpbGVbNTAwMDA1XSxkLHMsb2JyOwp2ZWN0b3IgPGludD4gVls1MDAwMDNdOwpib29sIG9rOwpib29sIGJ5bFs1MDAwMDVdOwp2b2lkIG9ibGljeihpbnQgaSk7CmludCBtYWluKCkKewogIGludCBuOwoKICBzY2FuZigiJWQiLCZuKTsKZm9yKGludCBpPTE7IGk8PW47IGkrKykKewogICAgc2NhbmYoIiVkICVkIiwmVFtpXVswXSwmVFtpXVsxXSApOwogICAgaWYoVFtpXVswXSA9PSBUW2ldWzFdICl7ICBWW1RbaV1bMF1dIC4gcHVzaF9iYWNrKGkpOyBpbGVbVFtpXVswXSBdKys7IGNvbnRpbnVlO30KCiAgICBWW1RbaV1bMF1dIC4gcHVzaF9iYWNrKGkpOwogICAgVltUW2ldWzFdXSAuIHB1c2hfYmFjayhpKTsKCiAgICBpbGVbVFtpXVswXSBdKys7CiAgICBpbGVbVFtpXVsxXSBdKys7Cn0Kb2sgPSAxOwpmb3IoaW50IGk9MTsgaTw9biA7aSsrKQp7CgogICAgaWYoIGlsZVtpXSA9PSAxKQogICAgewogICAgICAgIGlmKCBXWyBWW2ldWzBdIF0gKSB7b2s9MDsgYnJlYWs7IH0KICAgICAgICBzID0gVltpXVswXTsKICAgICAgICBXWyBzICBdID0gaTsKICAgICAgICBpbGVbaV0tLTsKICAgICAgICBpZiggVFtzXVswXSAhPSBpKQogICAgICAgIHsKICAgICAgICAgZCA9ICBWIFsgVCBbIHMgXVswXSBdIC4gc2l6ZSgpOwogICAgICAgICBmb3IoaW50IGE9MDsgYTxkO2ErKykKICAgICAgICAgewogICAgICAgICAgICAgaWYoViBbIFRbIHMgXVswXSBdW2FdID09ICBzKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFYgWyBUIFsgcyBdWzBdIF0gLiBlcmFzZSAoICBWIFsgVCBbIHMgXVswXSBdIC5iZWdpbigpK2EsICBWIFsgVCBbIHMgXVswXSBdIC5iZWdpbigpK2EgKyAxKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpbGVbIFRbc11bMF0gXS0tOwogICAgICAgICBvYnIgPSBUW3NdWzBdOwoKICAgICAgICAgd2hpbGUoaWxlWyBvYnIgXT09MSAmJiBvaykgb2JsaWN6KCBvYnIgKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgIGQgPSAgViBbIFQgWyBzIF1bMV0gXSAuIHNpemUoKTsKICAgICAgICAgZm9yKGludCBhPTA7IGE8ZDthKyspCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmKFYgWyBUWyBzIF1bMV0gXVthXSA9PSAgcykKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWIFsgVCBbIHMgXVsxXSBdIC4gZXJhc2UgKCAgViBbIFQgWyBzIF1bMV0gXSAuYmVnaW4oKSthLCAgViBbIFQgWyBzIF1bMV0gXSAuYmVnaW4oKSthICsgMSApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlsZVtUW3NdWzFdIF0tLTsKICAgICAgICAgb2JyID0gVFtzXVsxXTsKCiAgICAgICAgd2hpbGUgKGlsZVsgb2JyIF09PTEgJiYgb2spIG9ibGljeiggb2JyICk7CgogICAgICAgIH0KCiAgICB9CiAgIC8vIGVsc2UgaWYoaWxlW2ldID09IDAgJiYgIVdbIF0gKSB7b2sgPSAwOyBicmVhazt9Cn0KICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgIGlmKCFXW2ldKQogICAgICAgewogICAgICAgICAgICAgaWYoIFRbaV1bMF0gPCAgVFtpXVsxXSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIFdbaV0gPSBUW2ldWzBdOwogICAgICAgICAgICAgICAgICAgICAgYnlsW1RbaV1bMF0gXSA9IDE7CgogICAgICAgICAgICAgICAgICBkICA9IFZbIFdbaV0gXSAuc2l6ZSgpOwogICAgICAgICAgICAgICAgICBmb3IoaW50IGE9MDsgYTxkOyBhKyspCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGlmKCBWWyBXW2ldIF1bYV0gPT0gaSApCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgWyBXW2ldIF0gLiBlcmFzZSAoICBWIFsgV1tpXSBdIC5iZWdpbigpK2EsICBWIFsgV1tpXSBdIC5iZWdpbigpK2EgKyAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzID0gIFZbICBXW2ldIF1bMF07CiAgICAgICAgICAgICAgICBpZiggVFtzXVswXSA9PSBUW2ldWzBdICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXW3NdID0gVFtzXVsxXTsKICAgICAgICAgICAgICAgICAgICBieWxbc10gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBXW3NdID0gVFtzXVswXTsKICAgICAgICAgICAgICAgICAgICAgIGJ5bFtzXSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvL2QgPSBWW3NdLnNpemUoKTsKCiAgICAgICAgICAvLyAgICAgaWYgKCAgaWxlWyBUW2ldWzBdIF0gKQoKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBXW2ldID0gVFtpXVsxXTsKICAgICAgICAgICAgICAgICAgYnlsW1RbaV1bMV0gXSA9IDE7CiAgICAgICAgICAgICB9CiAgICAgICB9CiAgICB9CmlmKCFvaykKewogICAgcHV0cygiTklFIik7Cn0KZWxzZQp7CiAgICBmb3IoaW50IGo9MTsgajw9bjsgaisrKQogICAgewogICAgICAgIHByaW50ZigiJWQgIixXW2pdKTsKICAgIH0KfQoKfQp2b2lkIG9ibGljeihpbnQgaSkKewoKICAgICAgICBpZiggV1sgVltpXVswXSBdICkge29rPTA7IHJldHVybjsgfQogICAgICAgIHMgPSBWW2ldWzBdOwogICAgICAgIFdbIHMgIF0gPSBpOwogICAgICAgIGlsZVtpXS0tOwogICAgICAgIGlmKCBUW3NdWzBdICE9IGkpCiAgICAgICAgewogICAgICAgICBkID0gIFYgWyBUIFsgcyBdWzBdIF0gLiBzaXplKCk7CiAgICAgICAgIGZvcihpbnQgYT0wOyBhPGQ7YSsrKQogICAgICAgICB7CiAgICAgICAgICAgICBpZihWIFsgVFsgcyBdWzBdIF1bYV0gPT0gIHMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgViBbIFQgWyBzIF1bMF0gXSAuIGVyYXNlICggIFYgWyBUIFsgcyBdWzBdIF0gLmJlZ2luKCkrYSwgIFYgWyBUIFsgcyBdWzBdIF0gLmJlZ2luKCkrYSArIDEpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlsZVtUW3NdWzBdIF0tLTsKICAgICAgICAgb2JyID0gVFtzXVswXSA7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICBkID0gIFYgWyBUIFsgcyBdWzFdIF0gLiBzaXplKCk7CiAgICAgICAgIGZvcihpbnQgYT0wOyBhPGQ7YSsrKQogICAgICAgICB7CiAgICAgICAgICAgICBpZihWIFsgVFsgcyBdWzFdIF1bYV0gPT0gcykKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWIFsgVCBbIHMgXVsxXSBdIC4gZXJhc2UgKCAgViBbIFQgWyBzIF1bMV0gXSAuYmVnaW4oKSthLCAgViBbIFQgWyBzIF1bMV0gXSAuYmVnaW4oKSthICsgMSApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlsZVtUW3NdWzFdIF0tLTsKICAgICAgICAgIG9iciA9IFRbc11bMV0gOwogICAgICAgIH0KCn0K