IPSC 2000

Problem G – Windy Office

Senior chief programmer Andy and his team just finished a large
software project. They printed the entire source code and left it on the
table while they went for a lunch. Unfortunately they left the window
in the office open and it was a windy day. When they returned from
the lunch they found out that the wind had scattered the papers all
over the office. Now they want to arrange them in the original order.

Andy is a man of action. He immediately numbered all the pages he
could find. Of course this numbering is not related to the original
order of the pages. The source code consists of several procedures,
each labeled with a unique number. A procedure starts at some page and
can span across several consecutive pages. The first and the last of
these pages can contain also other procedures or their parts. The
procedure labels are not related to the order of the procedures in the
program.

Now the whole team is sitting in the office examining all the papers found
and writing pairs of numbers to the large whiteboard. The first
number in each pair represents the number of the page (in Andy's
numbering) and the second number represents procedure label. Such a
pair means that a part of the given procedure (or the entire
procedure) is on the given page. It is very likely that some pairs are
missing. In spite of this Andy hopes that this information would help
them to recover the original order of the pages.

Input file specification

Input consists of multiple blocks. Each block begins with a line
containing integer N giving the number of pairs noted on the
whiteboard. This line is followed by N pairs of numbers
ai, bi, where ai
is the number of the page and bi is the label of the
procedure. You may assume that both numbers of pages and labels of
procedures are positive integers smaller than 1 000 000 000.
There is a blank line after each block.

Output file specification

For each block of the input give one possible ordering of the pages
found. The output is a permutation of all page numbers mentioned at
least once in the input. If there is no such ordering (due to the
errors on the whiteboard made by the poor tired programmers) write only
the word NO.

Note: Some mailer programs do not send files with lines longer
than 70 characters correctly. You are allowed and encouraged to split
long lines into several lines on any whitespace.