게이트

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

문제

nn개의 게이트로 이루어진 회로를 생각하자. 게이트에는 00번부터 n1n-1번까지 번호가 매겨져 있다. 각 게이트는 여러 개의 입력과 정확히 하나의 출력을 가진다. 모든 입력과 출력은 00, 1/21/2, 11 중 하나의 상태를 가진다.

각 입력은 어떤 게이트의 출력 하나에 연결되며, 그 입력의 상태는 연결된 출력의 상태와 같다. 하나의 출력은 임의의 개수의 입력에 연결될 수 있다.

00번과 11번 게이트는 특별하다. 이 두 게이트는 입력이 전혀 없으며, 출력의 상태가 항상 고정되어 있다. 00번 게이트의 출력은 항상 00, 11번 게이트의 출력은 항상 11이다.

게이트의 출력 상태(줄여서 게이트의 상태)가 유효하다(valid)는 것은 다음 중 하나를 만족하는 경우이다.

  1. 상태가 00이고, 상태가 00인 입력의 개수가 상태가 11인 입력의 개수보다 많다.
  2. 상태가 1/21/2이고, 상태가 00인 입력의 개수와 상태가 11인 입력의 개수가 같다.
  3. 상태가 11이고, 상태가 11인 입력의 개수가 상태가 00인 입력의 개수보다 많다.
  4. 특별한 게이트(00번 또는 11번)이고, 그 상태가 각각 00 또는 11이다.

회로의 상태가 유효하다는 것은 모든 게이트의 상태가 유효하다는 뜻이다. 어떤 게이트의 상태가 고정되어 있다(fixed)는 것은, 회로의 모든 유효한 상태에서 그 게이트가 항상 같은 상태를 가진다는 뜻이다.

각 게이트에 대해 그 상태가 고정되어 있는지 판정하고, 고정되어 있다면 그 값을 구하는 프로그램을 작성하라.

입력

첫째 줄에 게이트의 개수 nn이 주어진다 (2n10,0002 \le n \le 10{,}000).

이어지는 n2n-2개의 줄은 게이트의 연결을 설명한다. 위에서부터 순서대로 이 줄들은 게이트 2,3,,n12, 3, \dots, n-1에 대응하며, 게이트 ii에 해당하는 줄은 그 게이트의 입력을 나타낸다. 각 줄은 그 게이트의 입력 개수 kik_i로 시작하고(ki1k_i \ge 1), 이어서 kik_i개의 게이트 번호가 주어진다. 이 번호들은 게이트 ii의 각 입력에 출력이 연결된 게이트들의 번호이며, 입력 순서대로 나열된다. 한 줄의 숫자들은 공백 하나로 구분된다.

모든 게이트의 입력 개수의 총합은 200,000200{,}000을 넘지 않는다.

출력

nn개의 줄을 출력한다. ii번째 줄은 게이트 i1i-1의 상태에 대한 결과이며, 다음 중 하나를 출력한다.

  • 0 — 상태가 00으로 고정된 경우
  • 1/2 — 상태가 1/21/2로 고정된 경우
  • 1 — 상태가 11로 고정된 경우
  • ? — 상태가 고정되지 않은 경우

힌트