Pineapple Senpai is introducing his family to you.
Each member of his family has some strong relatives such as ParentA, ParentB, Mate, and Child.
And there would be a narrator in the family, who is responsible to introduce the family to you.
Initially, the narrator is Pineapple Senpai himself, and the narrator would introduce his relative's attributes such as gender, age, name, and personality.
Each relative is selected by a strong-relative-chain. For example, if the strong-relative-chain is "ParentA Child", it means that the relative is the narrator's ParentA's Child(which is the narrator itself).
So there are three types of queries you need to proceed
Note that the first time every relative is introduced to you, there may be some information that is not directly revealed by the narrator but you should notice.
When a Child is first introduced to you, at least one of its parent is introduced early, which should be the Child's ParentA.
A Child's ParentA and ParentB should always be Mate to each other.
If B is A's Mate, A's Child would be B's Child, too.
Each time a perstonality is described, you should concatenate the new described personality behind the original personalities spacing by a single space character.
All you need to do is to implement the getRelative and describe function.
For the getRelative function, you should return the pointer to the relative that is selected by the strong-relative-chain
For the describe function, you should modify the corresponding attribute of the relative selected by the strong-relative-chain