추론

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

사설 탐정 홍 씨가 맡은 살인 사건의 정보를 정리하고 있다. 사건 관계자의 행적을 모아 nn개의 진술 S1,S2,,SnS_1, S_2, \dots, S_n을 적었다. 각 진술이 참인지 거짓인지는 아직 모르므로 홍 씨는 진술 하나하나를 사건 변수라고 부른다. 아래 여섯 진술이 사건 변수의 예다.

  1. S1S_1: 김철수는 개를 기른다.
  2. S2S_2: 박수철은 고양이를 좋아한다.
  3. S3S_3: 안희영은 박수철을 좋아한다.
  4. S4S_4: (생략)
  5. S5S_5: (생략)
  6. S6S_6: (생략)

홍 씨는 사건 변수 각각의 참 거짓과 변수 사이의 관계를 조사해 그 결과로 추론을 세웠다. 추론은 주장 하나 이상으로 이루어지고, 주장은 모두 다음 세 유형 중 하나다. 유형 1은 사건 변수 SiS_i가 참이라는 주장이다. 유형 2는 사건 변수 하나 이상을 모은 집합에 거짓인 변수가 적어도 하나 있다는 주장이다. 유형 3은 SiS_i와 함께 적힌 변수가 모두 참이면 SiS_i도 참이라는 주장이다. 세 유형은 다음과 같이 쓴다.

  1. 유형 1: SiS_i (SiS_i는 참이다.)
  2. 유형 2: Si1,Si2,,SikS_{i_1}, S_{i_2}, \dots, S_{i_k} \to \emptyset (Si1,Si2,,SikS_{i_1}, S_{i_2}, \dots, S_{i_k} 중 적어도 하나는 거짓이다.)
  3. 유형 3: Sj1,Sj2,,SjkSiS_{j_1}, S_{j_2}, \dots, S_{j_k} \to S_i (Sj1,Sj2,,SjkS_{j_1}, S_{j_2}, \dots, S_{j_k}가 모두 참이면 SiS_i도 참이다.)

예를 들어 홍 씨의 추론이 다음 여덟 주장으로 이루어졌다고 하자.

  1. S1S_1
  2. S2S_2
  3. S1,S2,S6S_1, S_2, S_6 \to \emptyset
  4. S1S6S_1 \to S_6
  5. S2S6S_2 \to S_6
  6. S1,S6S3S_1, S_6 \to S_3
  7. S2,S4S1S_2, S_4 \to S_1
  8. S5,S6S2S_5, S_6 \to S_2

주장 1과 2는 유형 1, 주장 3은 유형 2, 주장 4부터 8까지는 유형 3이다. 추론이 타당하려면 주장 사이에 모순이 없어야 하고, \to 왼쪽 변수가 모두 참인데 오른쪽 변수는 거짓이어야 하는 유형 3 주장이 없어야 한다. \to 왼쪽에 거짓인 변수가 하나라도 있으면 오른쪽 변수의 참 거짓은 추론의 타당성을 해치지 않는다.

타당한 배정은 추론을 타당하게 만드는 사건 변수의 참 거짓 배정이다. 홍 씨는 자기 추론에 타당한 배정이 있는지 알고 싶다.

위 예에서는 주장 1과 2로 S1S_1S2S_2가 참이고, 주장 4로 S6S_6도 참이 된다. 그런데 주장 3은 S1S_1, S2S_2, S6S_6 중 하나가 거짓이기를 요구하므로 이 추론은 타당하지 않다. 주장 3을 빼면 타당한 배정이 있다. 모든 변수를 참으로 두어도 되고, S4S_4만 거짓으로 두어도 된다.

사건 변수 nn개로 이루어진 홍 씨의 추론이 주어질 때, 타당한 배정이 있는지 판정하는 프로그램을 작성하시오.

입력

입력은 표준 입력으로 받는다. 첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 네 정수 nn, m1m_1, m2m_2, m3m_3 (1n15001 \le n \le 1500, 1m1<n1 \le m_1 < n, 0m2,m315000 \le m_2, m_3 \le 1500)이 주어진다. nn은 사건 변수의 개수이고, m1m_1, m2m_2, m3m_3은 각각 유형 1, 유형 2, 유형 3 주장의 개수다.

다음 m1m_1개 줄에는 각각 정수 ii (1in1 \le i \le n)가 주어지며, 유형 1 주장 SiS_i를 뜻한다.

다음 m2m_2개 줄에는 각각 정수 k+1k+1k,i1,i2,,ikk, i_1, i_2, \dots, i_k (1k1 \le k, 1i1,i2,,ikn1 \le i_1, i_2, \dots, i_k \le n, rsr \ne s이면 irisi_r \ne i_s)가 주어지며, 유형 2 주장 Si1,Si2,,SikS_{i_1}, S_{i_2}, \dots, S_{i_k} \to \emptyset을 뜻한다.

다음 m3m_3개 줄에는 각각 정수 k+2k+2k,j1,j2,,jk,ik, j_1, j_2, \dots, j_k, i (1kn11 \le k \le n-1, 1j1,j2,,jk,in1 \le j_1, j_2, \dots, j_k, i \le n, rsr \ne s이면 jrjsj_r \ne j_s, 모든 rr에 대해 ijri \ne j_r)가 주어지며, 유형 3 주장 Sj1,Sj2,,SjkSiS_{j_1}, S_{j_2}, \dots, S_{j_k} \to S_i를 뜻한다.

출력

출력은 표준 출력으로 한다. 테스트 케이스마다 정확히 한 줄을 출력한다. 추론이 타당하면 YES를, 타당하지 않으면 NO를 출력한다.