#P6039. [nerc 2022] Cactus Meets Torus

[nerc 2022] Cactus Meets Torus

背景

爱丽丝有一个漂亮的仙人掌图,她想将它放置在一张纸上。伊芙威胁要取走这个仙人掌的一个环,并沿着这个环切割纸张。这样,纸张会被分成两部分,这会让爱丽丝不高兴。幸运的是,芭芭拉给了爱丽丝一张纸环——一种纸张,其上下边缘相连,左右边缘也相连,不会扭曲。在环上,有时即使沿着一个环切割所有的边,它仍然可以保持为一块完整的纸张。帮助爱丽丝确定她是否可以将她的仙人掌放在一个环面上,使得伊芙无法沿一个环切割,从而将环面分成两个不连通的部分。

仙人掌是一种连通无向图,其中每条边都至多位于一个简单环上。直观地说,仙人掌是一种允许某些环的树的推广。多重边(同一对顶点之间的多条边)和自环(连接顶点自身的边)在仙人掌中是不允许的。

我们说一个图放置在一张纸上,如果每个顶点是纸上的一个点,每条边是其两个端点之间的线段,这些线段只在其端点相交。在环面上,这些线段可以经过纸张边缘任意次数。

描述

输入

输入包含一个或多个独立的测试用例。

每个测试用例的第一行包含两个整数nnmm,表示图中的顶点数和路径数(1n105;0m105)(1 \leq n \leq 10^5; 0 \leq m \leq 10^5)。图中的顶点编号为11nn。图的边由mm条点不相交的路径组成,每条路径包含的边数不超过mm

接下来的mm行中的每一行包含图中的一条路径。每条路径从一个整数sis_i开始,表示该路径中顶点的数量(2si1000)(2 \leq s_i \leq 1000),接着是sis_i个从11nn的整数。这些sis_i个整数表示路径中的顶点。路径中的顶点是不同的。路径可以多次经过相同的顶点,但每条边在整个测试用例中只被遍历一次。图中没有多重边(即任意两个顶点之间至多只有一条边)。

输入的最后一行包含两个零。这并不定义一个测试用例,它仅标记输入的结束,不需要输出任何结果。

所有输入中的图均为实际图。所有测试用例中所有nn值的总和以及所有mm值的总和均不超过10510^5

输出

对于每个测试用例,输出一行,包含“YES”或“NO”,表示是否可以将图放置在环面上,使得不能通过沿一个环切割将其分为两个不连通的部分。

示例

6 1
8 1 2 3 1 4 5 6 4
10 2
9 1 2 3 1 10 4 5 6 4
5 7 8 9 7 10
0 0
Yes
No