Karl 正在参加一场名为“西北欧偶像”(NWEI)的选秀节目的预赛,他希望能够晋级下一轮:世界偶像。在选秀节目中,每位选手有 10 分钟的时间来打动评委。在所有选手表演结束后,每位评委将投出两张不同的票。投票可以是支持某位选手(意味着该选手应该晋级),也可以是反对某位选手(意味着该选手不应该晋级)。晋级下一轮的选手人数并未预先设定;如果只有表现非常糟糕的选手,那么可能没有人晋级;如果每个人都很出色,那么所有人都可以晋级。
Karl 担心评委们不会欣赏他的编程天赋,因此他想利用他的另一项天赋来晋级下一轮:黑客技术。在获得了评委系统的访问权限后,Karl 有能力绕过常规的计票流程,直接选定哪些选手晋级下一轮。唯一的问题是,他必须小心,以免引起怀疑。
每位评委都期望他(或她)投出的两张票中,至少有一张与比赛的最终结果相符。如果最终结果与两张票都相矛盾,评委就会感到警觉。例如,假设评委 Harry 投了一张支持 Pete 的票和一张反对 Sally 的票。如果 Sally 晋级而 Pete 没有晋级,评委 Harry 就会感到警觉,并可能发现 Karl 对系统的篡改。
由于 Karl 的编程天赋有限(否则他就不需要使用他的黑客天赋了),他需要你编写一个程序,找出是否存在一组晋级下一轮的选手(必须包含他自己),使得他可以通过篡改评委系统来选定这组选手,且不会引起任何评委的警觉。
输入格式
对于每个测试用例,输入如下:
- 第一行包含两个正整数:选手人数 $n$ ($2 \le n < 1000$) 和评委人数 $m$ ($1 \le m < 2000$)。
- $m$ 行,包含每位评委的投票。 每行包含两个整数:$a$ ($1 \le |a| \le n$) 和 $b$ ($1 \le |b| \le n$),代表该评委的两张票 ($|a| \neq |b|$)。
票数 $x < 0$ 表示反对选手 $|x|$ 晋级。 票数 $x > 0$ 表示支持选手 $|x|$ 晋级。
选手编号为 $1 \dots n$。 Karl 是 1 号选手。
输出格式
对于每个测试用例,如果存在一组包含 Karl 的晋级选手,且不会引起任何评委的警觉,则输出一行 yes。如果不存在这样的选手集合,则输出 no。
样例
样例输入 1
4 3 1 2 -2 -3 2 4
样例输出 1
yes
样例输入 2
2 4 1 2 1 -2 -1 2 -1 -2
样例输出 2
no