다이아몬드 상속 (라지)

각 상속 DAG에 서로 다른 상속 경로가 두 개 이상 존재하는 클래스 쌍이 있는지 판정합니다.

보통5그래프위상 정렬동적 계획법면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

클래스 다이어그램을 점검해 다이아몬드 상속이 있는지 판정한다. 아래 그림은 클래스 AA, BB, CC, DD 네 개로 이루어진 다이어그램이다. XX에서 YY로 향하는 화살표는 클래스 XX가 클래스 YY를 상속한다는 뜻이다.

이 다이어그램에서 DDBBCC를 모두 상속하고, BBAA를 상속하며, CCAA를 상속한다.

클래스 XX에서 클래스 YY로 가는 상속 경로는 X,C1,C2,,Cn,YX, C_1, C_2, \dots, C_n, Y 형태로 클래스를 나열한 것이다. 여기서 XXC1C_1을 상속하고, 1in11 \le i \le n - 1인 모든 ii에 대해 CiC_iCi+1C_{i+1}을 상속하며, CnC_nYY를 상속한다. n=0n = 0인 경우도 포함한다. 즉 XXYY를 직접 상속하면 나열 X,YX, Y 자체가 상속 경로 하나다. 위 예시에서 DD에서 AA로 가는 상속 경로는 D,B,AD, B, AD,C,AD, C, A 두 개다.

어떤 클래스 쌍 XX, YY에 대해 XX에서 YY로 가는 서로 다른 상속 경로가 두 개 이상 있으면 그 클래스 다이어그램에 다이아몬드 상속이 있다고 한다. 위 다이어그램이 그 전형적인 예다. 주어진 클래스 다이어그램에 다이아몬드 상속이 있는지 판정하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어지고, 각 케이스는 클래스 다이어그램 하나를 나타낸다.

각 테스트 케이스의 첫 줄에는 그 다이어그램의 클래스 수 NN이 주어진다. 클래스는 11번부터 NN번까지 번호가 붙는다. 다음 NN개의 줄 가운데 ii번째 줄은 클래스 ii가 상속하는 클래스의 수 MiM_i로 시작하고, 그 뒤에 11 이상 NN 이하의 서로 다른 정수 MiM_i개가 이어진다. 이 정수는 클래스 ii가 상속하는 클래스의 번호다.

입력은 다음을 만족한다.

  • XX에서 YY로 가는 상속 경로가 있으면 YY에서 XX로 가는 상속 경로는 없다.
  • 어떤 클래스도 자기 자신을 상속하지 않는다.

제한

  • 1T501 \le T \le 50
  • 1N10001 \le N \le 1000
  • 0Mi100 \le M_i \le 10

출력

각 다이어그램마다 한 줄에 Case #x: y를 출력한다. xx11부터 시작하는 테스트 케이스 번호이고, yy는 그 다이어그램에 다이아몬드 상속이 있으면 Yes, 없으면 No다.