program fence; const maxn=2000; var g:array[1..maxn,1..maxn] of longint; du:array[1..maxn] of longint; c:array[1..maxn] of longint; i,k,n,x,y,min,max:longint; procedure find(x:longint); var j:longint; begin for j:=min to max do if g[x,j]>0 then begin dec(g[x,j]); dec(g[j,x]); find(j); end; inc(k); c[k]:=x; end; begin fillchar(g,sizeof(g),0); min:=2000; max:=-2000; k:=0; readln(n); for i:=1 to n do begin readln(x,y); inc(g[x,y]); inc(g[y,x]); inc(du[x]); inc(du[y]); if x<min then min:=x; if y<min then min:=y; if x>max then max:=x; if y>max then max:=y; end; for i:=min to max do if du[i] mod 2=1 then break; if i=max then find(min) else find(i); for i:=k downto 1 do writeln(c[i]); end. /************************************************************** Problem: 2054 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/