#Lutece1434. 经典题

经典题

Migrated from Lutece 1434 经典题

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

一个岛上住着n个居民,每个人要么是诚实的人(一直说真话),要么是撒谎者(一直说假话)。

一次岛民聚会的记录显示,n个岛民在聚会上共说了m句话,记录格式如下所示:

1)0 x y 表示x说y是诚实的人

2)1 x y 表示x说y说撒谎者

请判断这次会议记录有没有错误。

Input

输入包含多组数据,

对于每一组数据第一行包含两个数字n,m

接下来m行每个包含三个数字0 x y或1 x y

1<=n<=1000,1<=m<=2000

1<=x,y<=n.

Output

如果记录存在错误则输出no,否则输出yes

Samples

1 1
1 1 1
2 1
1 1 2
2 2
1 1 2
0 2 1
no
yes
no

Note

样例三解释:

如果第一个人是诚实的人那么第二个人就是说谎的人,所以第二个人说的话是假话,即可推出第一个人是说谎者,矛盾。

如果第一个人是说谎者那么第二个人就是诚实的人,所以第二个人说”第一个人是诚实的人“这句话为真,可得第一个人是诚实的人,矛盾。

综上所述,第一个人不管怎样都不能符合会议记录,因此记录一定存在问题。

Resources

2016 UESTC Training for Graph