#5099. 黑暗城堡

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

题目描述

在顺利攻破 Lord lsp 的防线之后,lqr 一行人来到了 Lord lsp 的城堡下方。Lord lsp 黑化之后虽然拥有了强大的超能力,能够用意念力制造建筑物,但是智商水平却没怎么增加。

现在 lqr 已经搞清楚黑暗城堡有 N 个房间, M 条可以制造的双向通道,以及每条通道的长度。lqr 深知 Lord lsp 的想法,为了避免次都要琢磨两个房间之间的最短路径,Lord lsp一定会把城堡修建成树形的;但是,为了尽量提高自己的移动效率,Lord lsp 一定会使得城堡满足下面的条件:设 D_i 为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度;而 S_i 为实际修建的树形城堡中第 i 号房间与第 1 号房间的路径长度,于所有满足 1≤i≤N 的整数 i ,有 S_i = D_i

为了打败 Lord lsp,lqr想知道有多少种不同的城堡修建方案。于是 lqr 向 applepi 提出了这个问题。由于 applepi 还要忙着出模拟赛,所以这个任务就交给你了。当然,你只需要输出答案对 2^{31} – 1 取模之后的结果就行了。

输入格式

第一行有两个整数 N M

之后 M 行,每行三个整数 X Y L ,表示可以修建 X Y 之间的一条长度为 L 的通道。

输出格式

输出一个整数,表示答案对 2^{31} – 1 取模之后的结果。

样例

样例输入

3 3
1 2 2
1 3 1
2 3 1

样例输出

2

数据范围与提示

对于 30 \% 的数据, 2 \le N \le 5 M \le 10

对于 50 \% 的数据,满足条件的方案数不超过 10000

对于 100 \% 的数据, 2 \le N \le 1000 N – 1 \le M \le \frac{1}{2} N \times (N – 1) 1 \le L \le 100