#1262. 系统漏洞

内存限制:512 MiB 时间限制:5000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Komeiji Koishi

题目描述

在为游戏Minecraft安装工业时代2模组后,可以拿任意与该模组矿物词典通用的锡锭来合成原版的空桶。

与能将桶还原成铁的模组搭配,相当于用锡1:1换铁。

你设计了游戏里的一套经济系统,系统由 NN 种物品和 MM 种物品兑换规则组成,每种规则形如“玩家可以用一个物品 AiA_ixix_i 个物品 BiB_i 之间来回兑换”。

但测试员报告可能玩家会利用系统的bug无限刷物品,例如:

  • 玩家可以用一个物品 1122 个物品 22 之间来回兑换。

  • 玩家可以用一个物品 2222 个物品 33 之间来回兑换。

  • 玩家可以用一个物品 1133 个物品 33 之间来回兑换。

假如玩家有一个物品 AA ,依据“规则一”,它可以兑换成 22 个物品 BB,再依据“规则二”兑换成 44 个物品 CC,最后依据“规则三”兑换成 11 个物品 AA11 个物品 CC。重复以上过程,物品 CC 的数量会无限增长。

这样的 bug\rm bug 会毁掉整个游戏,你必须编写程序对你的经济系统进行检测,确保不会出现这样的情况。

输入格式

第一行包含两个整数 N,M (1N,M105)N,M\ (1 \leq N,M \leq 10^5),由空格隔开,含义由上所述。

接下来 MM 行,每行三个整数 Ai,Bi,xi (1Ai,BiN,AiBi,1xi109)A_i,B_i,x_i\ (1 \leq A_i,B_i \leq N,A_i \neq B_i,1 \leq x_i \leq 10^9)

输出格式

如果系统没有 bug\rm bug,也就是说不会出现任何导致物品无限增长的情形,输出 Yes\rm Yes,否则输出 No\rm No

样例

样例输入1

4 4
1 2 2
2 3 2
3 4 2
4 2 3

样例输出1

No

样例输入2

4 3
1 2 7
2 3 5
4 1 2

样例输出2

Yes

样例输入3

4 4
1 2 101
2 3 99
1 4 100
4 3 100

样例输出3

No

样例输入4

5 6
3 1 4
2 3 4
5 4 15
2 1 16
2 4 20
5 3 3

样例输出4

Yes