SP10092 PRTYNGHT - Party Night

题目描述

今天是镇上的庆祝日,按传统全镇居民都要去参加聚会。每个人需要在某个酒吧参加一个聚会,尽情地跳舞喝酒直到醉酣。聚会结束后,另一些酒吧会开始举办余兴派对,每个人也要去参加。为了让镇上更多的人互相结识,任何两个人不能参加相同的两个聚会。 这种习俗常常让人们对当晚的活动几乎一无所知,不过大家都还是想知道自己当时见过谁。遗憾的是,他们只能隐约记得当时和谁在一起,具体的时间和地点却完全模糊。而由于他们的记忆甚至可能不可靠(这种事常有发生),他们需要帮助来判断所有人的回忆是否一致,或者是否有些镇民记错了(可能是忘记了见过某个人,或错误地认为自己见过某人)。你能帮助他们确认这些吗? 比如,在一个有 4 个人的小镇上,如果我们得知村民 0、1 和 2 互相见过面,并且村民 2 和 3 也见过面,那么信息就是一致的。因为可以假设有聚会 $P_0$ 和 $P_1$,以及余兴派对 $A_0$、$A_1$ 和 $A_2$,并安排 0 号人参加 $P_0$ 和 $A_0$,1 号人参加 $P_0$ 和 $A_1$,2 号人参加 $P_0$ 和 $A_2$,3 号人参加 $P_1$ 和 $A_2$;这样能满足所有条件。然而,如果 0 号人和 3 号人也说见过面,这样的信息就不可能一致了。

输入格式

输入包括多个测试用例。每个用例首先是一行,包含两个整数:$n$ 和 $m$。接下来的 $m$ 行中,每行包含一个整数对 $i$ 和 $j$($0 \le i, j < n$,$i \neq j$),表示编号为 $i$ 和 $j$ 的人记得他们曾在酒吧里见过面。不会有重复的人员对。 不同测试用例之间用空行分隔。当 $n = m = 0$ 时,输入结束。

输出格式

对于每个测试用例,输出`YES`表示有一种聚会和余兴派对的安排能满足输入描述中的见面情况。否则输出`NO`。

说明/提示

$$1 \le n \le 10^5, 0 \le m \le 10^5$$ **本翻译由 AI 自动生成**