PivotOJ

All in the Family

시간 제한: 1000ms메모리 제한: 1024MB출처: ICPC ECNA 2020-2021BOJ 21150

문제

The scientists working at the Family Genetics Institute are tracing the spread of a hereditary disease through family trees.  They have started by listing the family members that have the disease, and the parent who passed the disease on to each child (we will assume that each child gets the disease from only one parent).  However, the scientists are confused about the names of different family relationships.  Parents, grandparents, and siblings they have a handle on.  But a relationship like "third cousin, twice removed" has been hard for them to wrap their heads around.   After much discussion they came up with some definitions that cleared things up.

Suppose we have two people conveniently named AA and BB and their closest common ancestor is named CC (what are the odds!).  We say that AA is mm generations removed from CC\/ if there are mm direct descendants from CC ending with AA.  Thus if AA is the daughter of CC she is 11 generation removed; if she is the granddaughter of CC she is 22 generations removed, and so on.  Any person is 00 generations removed from themselves.

Now let AA be mm generations removed from CC and BB be nn generations removed from CC where mnm \leq n.  We can determine the relationship between AA and BB using the following rules:

  1. if m=0m = 0 then BB is the child of AA if n=1n=1 or the \mboxgreatn2great^{n-2} grandchild of AA if n>1n > 1.
  2. if 0<m=n0 < m = n then AA and BB are siblings if n=1n=1 or (n1)(n-1)-th cousins if n>1n > 1.
  3. if 0<m<n0 < m < n then AA and BB are (m1)(m-1)-th cousins (nm)(n-m) times removed.

Notice that if m=1m = 1 and n=2n = 2 we get the interestingly named "00th cousins, 11 time removed" for the relationships we typically describe as "aunt/uncle" or "niece/nephew".

Figure 1 below shows some examples for two new people named (what else) DD and EE.

# of generations removed from common ancestor Relationship
DD EE
00 11 EE is the child of DD
44 00 DD is the great great grandchild of EE
33 33 DD and EE are 22nd cousins
99 88 DD and EE are 77th cousins, 11 time removed
11 44 DD and EE are 00th cousins, 33 times removed

Figure 1: Some example relationships

The scientists have given you the description of a family tree and pairs of people in the tree and have asked you to determine the relationships between members of each pair.

입력

Input begins with a line containing two positive integers tt pp (t100,p1000t \leq 100, p \leq 1\,000) specifying the  number of tree descriptions (described below) and the number of query pairs.  Following these are tt lines, each with one tree description.  Each tree description will be of the form s0s_0 dd s1s_1 s2sds_2 \ldots s_d indicating that person s0s_0 has dd children named s1s_1 through sds_d.  All names are unique and contain only alphabetic characters.  Tree descriptions may be given in any order (i.e., the root of the entire tree may not necessarily be in the very first tree description).  No name will appear more than once as s0s_0 in the tree descriptions.  All the tree descriptions will combine to form exactly one tree, and the tree will have at least 22 nodes and at most 100100 nodes.

Following this are pp lines of the form sis_i sjs_j where sisjs_i \neq s_j and both names are guaranteed to be in the tree.

출력

Output the relationship for each pair of people, one per line, using the formats shown in Figure 1.  Always output sis_i's name first for each pair except when sjs_j is the direct descendant of sis_i (as in the first example in Figure 1).  For the nn-th ordinal number output nnth except for n=1,2,3,21,22,23,31,32,33,n=1,2,3,21,22,23,31,32,33,\ldots  in which case you should output 1st, 2nd, 3rd, 21st, 22nd, 23rd, 31st, 32nd, 33rd, etc.  Also be sure to use times for all times removed except one, where you should use the word time.

예제

예제 1

입력
4 5
Horatio 1 Irene
Chris 2 Gina Horatio
Alice 3 Dan Emily Frank
Bob 2 Alice Chris
Irene Bob
Dan Frank
Chris Emily
Alice Chris
Dan Irene
출력
Irene is the great grandchild of Bob
Dan and Frank are siblings
Chris and Emily are 0th cousins, 1 time removed
Alice and Chris are siblings
Dan and Irene are 1st cousins, 1 time removed

예제 2

입력
4 6
A 4 B C D E
H 3 I J K
C 2 F G
D 1 H
G C
H A
F G
F H
F K
B K
출력
G is the child of C
H is the grandchild of A
F and G are siblings
F and H are 1st cousins
F and K are 1st cousins, 1 time removed
B and K are 0th cousins, 2 times removed
코드를 제출하려면 로그인하세요.