你需要帮助诊断类图以识别菱形继承的实例。以下类图示例展示了菱形继承的特性。图中共有四个类:A、B、C 和 D。从 X 指向 Y 的箭头表示类 X 继承自类 Y。
在此类图中,D 同时继承自 B 和 C,B 继承自 A,C 也继承自 A。从 X 到 Y 的继承路径定义为类序列 $X, C_1, C_2, C_3, \dots, C_n, Y$,其中 X 继承自 $C_1$,对于 $1 \le i \le n - 1$,$C_i$ 继承自 $C_{i + 1}$,且 $C_n$ 继承自 Y。在上述示例中,从 D 到 A 有两条继承路径。第一条路径是 D, B, A,第二条路径是 D, C, A。
如果存在一对类 X 和 Y,使得从 X 到 Y 至少存在两条不同的继承路径,则称该类图包含菱形继承。上述类图是菱形继承的经典示例。你的任务是确定给定的类图是否包含菱形继承。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例,每个测试用例描述一个类图。每个测试用例的第一行给出该图中的类数量 $N$。类编号从 1 到 $N$。接下来有 $N$ 行。第 $i$ 行以一个非负整数 $M_i$ 开头,表示类 $i$ 继承的类的数量。随后是 $M_i$ 个不同的正整数(每个都在 1 到 $N$ 之间),表示这些被继承的类。你可以假设:
- 如果存在从 X 到 Y 的继承路径,则不存在从 Y 到 X 的继承路径。
- 类永远不会继承自自身。
输出格式
对于每个类图,输出一行 "Case #x: y",其中 $x$ 是测试用例编号(从 1 开始),如果类图包含菱形继承,则 $y$ 为 "Yes",否则为 "No"。
数据范围
$1 \le T \le 50$。 $0 \le M_i \le 10$。
子任务 1
$1 \le N \le 50$。
子任务 2
$1 \le N \le 1,000$。
样例
样例输入 1
3 3 1 2 1 3 0 5 2 2 3 1 4 1 5 1 5 0 3 2 2 3 1 3 0
样例输出 1
Case #1: No Case #2: Yes Case #3: Yes