拼高达
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Byte很爱拼高达,但是总搞不清一些零件的安装次序,导致总要拆掉一部分重拼,你能帮帮他吗?
一个高达由若干个零件组成,相同零件可以在不同高达中使用,零件之间有先后依赖顺序。说明书会给出零件的安装顺序,请你计算出最快拼完的时间。

输入描述:

第一行输入两个整数 n 和 m,表示图中有 n 个节点和 m 条边。

接下来 m 行,每行输入三个整数 u, v, w,表示必须先安装u再安装v,且耗时为w。

输出描述:

如果整个项目的安排是合理可行的,在一行中输出最快拼完时间;否则输出"NOWAY"。
示例1

输入

复制
20 5
4 10 6
19 8 2
8 16 5
16 1 5
10 19 5

输出

复制
23

说明

4->10->19->8->16->1
示例2

输入

复制
20 5
4 10 6
8 19 2
12 19 5
16 1 5
10 15 3

输出

复制
9

说明

4-10-15、8->19、 12->19 、 16->1 无法拼完所有的零件,给出拼最多的零件时间

备注:

(n <= 10000, m<=10000, 0 < w < 10,  u,v确保符合题目内容)