Erdős Numbers

Paul Erdős (1913-1996) was a very prolific Hungarian mathematician. He is famous for the amount of mathematics he produced (about $1\, 475$ papers published during his lifetime), the number of professional collaborators and coauthors he worked with (he had $511$ coauthors), and his nomadic lifestyle. He routinely traveled to visit collaborators, staying with them long enough to work on a few ideas, before moving on to visit someone else. Whenever he encountered a mathematical proof he thought was particularly elegant, he would claim it came from “The Book” – a special volume in which he believed God kept all the best proofs of every mathematical theorem.

Erdős worked a lot on graph theory, which is concerned
with the structure of connections between pairs of objects.
Fittingly, we can treat the collaboration of mathematicians as
a graph problem, where each person is represented by a graph
node, and each coauthored paper forms edges between all pairs
of nodes for the corresponding coauthors on the paper.
Erdős is directly connected with a lot of coauthors with
whom he published papers, who are further connected to other
coauthors by other publications, and so on. This has led to the
concept of an **Erdős number**. Erdős
himself has an Erdős number of $0$. All of his coauthors have an
Erdős number of $1$.
Everyone who is a coauthor with one of his coauthors (but not
with Erdős himself) has an Erdős number of
$2$, and so on. It’s
become a matter of distinction to have a low Erdős
number.

Write a program to help people who have published papers find their Erdős number – that is, the smallest number of coauthors linking them to Erdős.

Input consists of one database of paper coauthorship,
containing up to $2\, 000$
lines. Each line begins with an author’s name, followed by a
space-separated list of $0$ to $511$ coauthor names. Note that some
authors list a limited set of his/her coauthors; but two people
are considered coauthors if either lists the other as a
coauthor. Paul Erdős is one of the listed authors (always
given as `PAUL_ERDOS`). Every name consists
of up to $40$ letters
(a-z), hyphens, and underscores. Input ends at end of file.

Note: In the sample input, a limited set of Erdős coauthors are listed for space reasons.

For each author (the first name of each line in the input),
print the author’s name and his or her Erdős number.
Print the authors in the same order they appear in the
database. If some author has no connection to Erdős, print
`no-connection`.

Sample Input 1 | Sample Output 1 |
---|---|

PAUL_ERDOS HARVEY_ABBOTT JANOS_ACZEL TAKASHI_AGOH RON_AHARONI MARTIN_AIGNER MIKLOS_AJTAI HARVEY_ABBOTT CHARLES_AULL EZRA_BROWN PAUL_DIERKER PAUL_DIERKER MATTS_ESSEN FRANK_BROWN CHARLES_ROGERS |
PAUL_ERDOS 0 HARVEY_ABBOTT 1 PAUL_DIERKER 2 FRANK_BROWN no-connection |