혈액형
시간 제한3초메모리 제한256 MB
각 부모가 대립유전자 하나씩을 물려주는 N 부모 체계에서 부모들의 혈액형으로 Q개 질의 혈액형이 자식에게 나타날 수 있는지 판정합니다.
문제
사람의 혈액형은 AB, A, B, O 네 가지다. 각각 적혈구에 A형과 B형 항원이 모두 있는 경우, A형만 있는 경우, B형만 있는 경우, 항원이 하나도 없는 경우를 뜻한다. 혈액형은 DNA에 있는 대립유전자 두 개가 결정하고, 각 대립유전자의 타입은 A, B, O 중 하나다. 혈액형마다 가능한 대립유전자 조합은 다음과 같다.
사람은 두 부모에게서 대립유전자를 정확히 하나씩 물려받는다. 그래서 부모 두 명의 혈액형을 알면 어떤 혈액형이 자식에게 가능한지 아닌지 확실하게 말할 수 있다. 예를 들어 부모의 혈액형이 각각 AB와 B이면 두 사람이 가질 수 있는 대립유전자 조합은 {AB}와 {OB, BB}다. 대립유전자의 순서는 상관없으므로 자식이 가질 수 있는 조합은 {OA, AB, OB, BB}이고, 따라서 자식에게는 AB, A, B가 가능하고 O는 불가능하다.
지구의 생명이 다르게 진화해서 한 개체에게 부모가 셋, 대립유전자가 셋, 항원 타입이 세 가지 있었다면 조합은 이렇게 된다.
부모 세 명의 혈액형이 A, BC, O이면 자식에게는 BC와 ABC를 뺀 모든 혈액형이 가능하다.
우주는 넓다. 어딘가에는 한 개체에게 부모가 명, 대립유전자가 개, 항원 타입이 가지인 생명이 있을지도 모른다. 부모 명의 혈액형과 검사할 혈액형 개가 주어진다. 각 혈액형이 이 부모의 자식에게 가능한지 판정하라.
입력
첫째 줄에 정수 과 가 주어진다. 은 부모의 수이자 대립유전자의 수이자 항원 타입의 수이고, 는 질의의 수다 (, ).
다음 개 줄에는 부모 한 명의 혈액형이 한 줄씩 주어진다. 그 다음 개 줄에는 검사할 혈액형이 한 줄씩 주어진다.
항원 타입은 글자가 아니라 1부터 까지의 서로 다른 정수로 나타낸다. 혈액형을 나타내는 각 줄은 그 혈액형에 있는 항원 타입의 개수 와 (), 이어서 그 혈액형에 있는 항원 타입을 나타내는 서로 다른 정수 로 이루어진다 ().
출력
질의 개마다 한 줄씩 출력한다. 그 혈액형이 주어진 부모의 자식에게 가능하면 대문자 "Y"를, 불가능하면 대문자 "N"을 출력한다. 입력에 질의가 나온 순서대로 출력한다.