문제 150
두 가지 값과 조건
참 또는 거짓인 변수 $N$개가 있다. 변수의 번호는 $0$부터 $N-1$까지이다. 변수의 번호 $u$에 대해 리터럴 $2u$는 변수 $u$가 참이라는 뜻이고, 리터럴 $2u+1$은 거짓이라는 뜻이다.
다음 두 종류의 조건이 총 $M$개 주어진다.
- $0\ a\ b$: 두 리터럴 $a$와 $b$ 중 적어도 하나가 참이다.
- $1\ k\ a_1\ a_2\ \cdots\ a_k$: 길이가 $k$인 목록 $a_1, a_2, \cdots, a_k$에 있는 서로 다른 리터럴 중 참인 것은 최대 하나이다.
모든 조건을 동시에 만족하는 변수 배정이 존재하는지 판별해 보자. 목록에는 같은 리터럴이 여러 번 등장할 수 있다.
입력
첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $Q$가 주어진다. $(1\le Q\le100)$
각 테스트 케이스의 첫 번째 줄에 정수 $N$, $M$이 공백으로 구분되어 주어진다. $(1\le N\le50\,000; 0\le M\le200\,000)$
두 번째 줄부터 $M$개의 줄에 걸쳐 다음 두 형식 중 하나로 조건이 주어진다. 각 줄의 값은 공백으로 구분되어 주어진다.
- $0\ a\ b$: 정수 $a$, $b$가 주어진다. $(0\le a,b<2N)$
- $1\ k\ a_1\ a_2\ \cdots\ a_k$: 정수 $k$와 리터럴 번호 $a_1, a_2, \cdots, a_k$가 주어진다. $(0\le k\le200\,000; 0\le a_i<2N)$
모든 테스트 케이스에 대한 $N$의 합은 $200\,000$ 이하이고, $M$의 합은 $300\,000$ 이하이다. 모든 테스트 케이스에서 주어지는 목록의 길이 $k$의 합은 $10^6$ 이하이다.
출력
각 테스트 케이스에 대해 모든 조건을 동시에 만족시킬 수 있으면 $1$을, 그렇지 않으면 $0$을 한 줄에 출력한다.
예제 입력 1
3 5 6 1 3 1 9 4 1 2 3 3 1 3 1 5 7 1 2 7 8 0 5 1 0 0 9 6 0 6 0
예제 출력 1
1 1 1