친척 호칭

이진 가계도에서 두 사람의 번호와 두 번째 사람의 성별이 주어지면 두 번째 사람이 첫 번째 사람과 맺는 영문 친족 명칭을 출력합니다.

보통5트리수학구현아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

영어에는 가족 관계를 가리키는 말이 많다. 기본 관계는 다음과 같다.

  • 본인은 self, 부모는 mother(여자)와 father(남자), 자식은 daughter(여자)와 son(남자)이다.
  • 부모의 다른 자식은 여자면 sister, 남자면 brother이다.
  • sister나 brother의 자식은 여자면 niece, 남자면 nephew이고, 나는 그 사람에게 aunt(여자) 또는 uncle(남자)이다.
  • 조부모는 같지만 부모가 다른 두 사람은 1st cousin이다. 증조부모는 같지만 조부모가 다르면 2nd cousin이고, 같은 방식으로 3rd cousin과 그 뒤로 이어진다.

세대가 더 벌어지면 다음 규칙으로 넓힌다.

  • daughter, son, niece, nephew는 앞에 "grand", "great-grand", "great-great-grand"를 붙여 아래 세대로 확장한다. 아들이나 딸의 아들은 grandson이다. niece나 nephew의 아들은 grandnephew이고, grandnephew의 딸은 great-grandniece이다. 이론상 "great-"를 얼마든지 더 붙일 수 있지만, 이 문제에서는 "great-great-grand"까지만 쓴다.
  • mother, father, aunt, uncle에도 같은 접두사를 대칭으로 붙인다. granddaughter나 grandson에게 나는 grandmother 또는 grandfather이고, great-grandniece나 great-grandnephew에게 나는 great-grandaunt 또는 great-granduncle이다.
  • cousin 관계는 cousin의 후손까지 removed 단계로 넓힌다. 1st cousin의 자식은 1st cousin once removed이고, 그 사람에게 나도 1st cousin once removed이다. 3rd cousin의 손주는 3rd cousin twice removed, 2nd cousin의 증손주는 2nd cousin thrice removed이다. cousin이 들어가는 관계는 모두 대칭이라, 상대가 나에게 Kth cousin에 removed가 몇 번 붙은 관계면 나도 상대에게 같은 관계이다.

한 사람이 다른 사람에게 어떤 관계인지 출력하는 프로그램을 작성하라.

입력

입력은 데이터 세트 하나 이상으로 이루어진다. 각 데이터 세트는 한 줄에 정수 AABB (0A,B327670 \le A, B \le 32767), 그리고 문자 하나로 주어진다. 첫 번째 정수가 음수인 줄은 입력의 끝을 뜻한다. 이 줄은 데이터 세트가 아니고 아무것도 출력하지 않는다.

두 정수는 사람 AA와 사람 BB를 가리킨다. 문자는 M 또는 F이고, 사람 BB의 성별이 남자인지 여자인지 알려준다.

두 정수는 포화 이진 트리로 그린 가계도에서 AABB가 있는 자리이다. 뿌리는 0번, 그 자식은 1번과 2번, 1번의 자식은 3번과 4번, 2번의 자식은 5번과 6번이고, 이렇게 한 층씩 왼쪽에서 오른쪽으로 번호를 매긴다. 번호를 매기는 방식은 아래 그림과 같다. 이 트리의 부모 자식 관계가 가족의 부모 자식 관계이다.

출력

데이터 세트마다 BBAA에게 어떤 관계인지 한 줄에 출력한다. 답은 "self", "sister", "brother", "daughter", "son", "mother", "father", "niece", "nephew", "aunt", "uncle", "cousin", "grand", "great-", "1st", "2nd", "3rd", "once removed", "twice removed", "thrice removed"만 써서 만든다. "great-" 접두사는 두 번까지만 붙일 수 있다. "1st", "2nd", "3rd"를 쓰면 뒤에 오는 부분과 공백 한 칸으로 띄운다. "once removed", "twice removed", "thrice removed"를 쓰면 앞에 오는 부분과 공백 한 칸으로 띄운다. 위 제한 안에서 BBAA에게 어떤 관계인지 나타낼 수 없으면 "kin"을 출력한다.