超简单的最短路
题号:NC219213
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对,没错!这是为行行制作的最简单的最短路,这条路是通往行行毕业的路O(∩_∩)O哈哈~!所以你一定要帮行行顺利毕业哦!
现在给你一个包含n个点的有向图,并且路径上面还有康老师安排的数字放在上面,行行的通关任务就是求出从1到n的路径中数字之积最小的简单路径。

输入描述:

第一行读入两个整数 n 和 m ,表示共 n 个点 m 条边。 接下来 m 行,每行三个正整数 x,y,z,表示点 x 到点 y 的路径上有一个数字为 z 的边。

输出描述:

输出仅包括一行,记为所求路径的数字的乘积,由于答案可能很大,因此康老师很仁慈的让行行输出它模 9987的余数即可。
示例1

输入

复制
3 3
1 2 3 
2 3 3 
1 3 10

输出

复制
9

备注:

对于20%的数据,n≤10。

对于100%的数据,n≤103,m≤106。边权不超过104