다이아몬드 상속 (작은 입력)

각 상속 관계도에서 두 클래스를 잇는 서로 다른 상속 경로가 두 개 이상 있는지 판정합니다.

보통4그래프DFS면접 대비아직 제출이 없습니다시간 제한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이면 경로는 X,YX, Y이고, 이는 XXYY를 직접 상속하는 경우다. 위 예에서 DD에서 AA로 가는 상속 경로는 두 개다. 하나는 D,B,AD, B, A이고 다른 하나는 D,C,AD, C, A이다.

두 클래스 XXYY가 있어서 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
  • 1N501 \le N \le 50
  • 0Mi100 \le M_i \le 10

출력

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