Problem M
Foreign Football
You are on vacation in a foreign country. This country has a local football league, and you don’t know any of the team names. However, you have found a table of all the results from this season, and next to every match is the concatenated names of the two teams that played.
There are $n$ teams in total, named $s_1, s_2, \cdots , s_ n$. You are given the concatenation $s_ i+s_ j$ for every ordered pair $i \neq j$. Find the teams names $s_1, s_2, \cdots , s_ n$. Team names must be nonempty, but they do not need to be distinct.
Input
The first line of input contains the integer $n$ ($2 \leq n \leq 500$).
The following $n$ lines each contain $n$ strings, the table of concatenated team names. The $j$:th string on the $i$:th of these lines will contain the string $s_ i + s_ j$ if $i \neq j$, and “*” if $i = j$. The concatenated team names will consist of lower case characters a-z.
The total number of characters in concatenated team names is at most $10^6$.
Output
If there is no solution, print “NONE”.
If there is more than one solution, print “MANY”.
If there is one unique solution, print “UNIQUE”, followed by $n$ lines containing $s_1, s_2, \cdots , s_ n$.
Sample Input 1 | Sample Output 1 |
---|---|
3 * difaik difhammarby aikdif * aikhammarby hammarbydif hammarbyaik * |
UNIQUE dif aik hammarby |
Sample Input 2 | Sample Output 2 |
---|---|
2 * aaaa aaaa * |
MANY |
Sample Input 3 | Sample Output 3 |
---|---|
3 * a ab a * b ba b * |
NONE |
Sample Input 4 | Sample Output 4 |
---|---|
2 * zz zz * |
UNIQUE z z |