巴黎有许多酒店。有些酒店离奥利(Orly)机场非常近,这对于在早班机前过夜的旅客非常有用。有些酒店离巴黎圣母院(Notre-Dame)非常近,这让游客可以在黎明时分漫步在“圣路易岛(Île Saint-Louis)”并欣赏塞纳河畔的风景。最后,还有一些酒店离巴黎迪士尼乐园(Disneyland Paris)度假区更近,这是游客访问量最大的景点。来到巴黎的旅客通常希望住在离这三个主要兴趣点(POI):奥利、巴黎圣母院和迪士尼乐园较近的地方。
你受雇于一家旅行社,你的经理安娜(Anna)想要准备一份酒店列表,以包含在她新的旅游指南中。她的指南为地铁网络的每个车站提供一个条目。安娜注意到,有些车站相对于这三个兴趣点的距离而言位置并不方便,因此她的指南不应包含这些“无用”车站的酒店部分。
安娜认为,当另一个车站离所有兴趣点都更近时,该车站就是无用的。形式化地说,如果存在另一个车站 $B$,使得 $B$ 到三个兴趣点的距离都小于或等于 $A$ 到对应兴趣点的距离,且 $B$ 到至少一个兴趣点的距离严格小于 $A$ 到该兴趣点的距离,则车站 $A$ 是无用的。如果一个车站不是无用的,那么它就是有用的。
安娜问你,她的指南中有多少个车站会有酒店部分。为了计算这个列表,你得到了地铁网络的规划图。地铁网络的规划图是一个无向加权图。在这个图中,每个节点对应一个车站(注意每个兴趣点也是一个车站);每条边连接两个车站,并且在任一方向上通过都需要一定的时间。该图是连通的,任意两个车站之间的距离是连接这两个节点的路径的总时间最小值。
输入格式
输入包含多行,每行由以空格分隔的整数组成: 第一行包含节点数 $N$ 和边数 $E$。 接下来的 $E$ 行,每行描述一条边,包含三个整数 $A$、$B$ 和 $W$: $A$ 和 $B$ 是边的端点(编号从 $0$ 到 $N - 1$); $W$ 是边的权重。
在图中: 奥利(Orly)对应车站 $0$; 巴黎圣母院(Notre-Dame)对应车站 $1$; * 迪士尼乐园(Disneyland)对应车站 $2$。
数据范围
- $4 \leqslant N \leqslant 100\,000$;
- $E \leqslant 500\,000$;
- $1 \leqslant w \leqslant 100$。
输出格式
输出应包含一行,其内容为一个整数,即有用车站的数量。
样例
样例输入 1
5 4 0 3 1 1 3 1 2 3 1 4 3 1
样例输出 1
4
说明 1
该图在右侧描绘,其中 Gare du Nord 为节点 $3$,La Défense 为节点 $4$。在此图中,有四个车站是有用的:奥利、迪士尼乐园、巴黎圣母院和 Gare du Nord。对应于奥利、迪士尼乐园、巴黎圣母院的车站是离它们自身最近的车站。除了 Gare du Nord(它到所有兴趣点的距离为 $1$)之外,所有车站到某个兴趣点的距离为 $2$。最后,La Défense 是无用的,因为它到所有兴趣点的距离都是 $2$。例如,奥利到巴黎圣母院和迪士尼乐园的距离与 La Défense 相同,但到奥利本身的距离严格更近,因此奥利证明了车站 La Défense 是无用的。
样例输入 2
5 6 0 3 1 1 3 1 2 3 1 4 3 1 0 1 1 0 2 1
样例输出 2
3
说明 2
在此图中(在右侧描绘),有三个车站是有用的:奥利、迪士尼乐园和巴黎圣母院。对应于奥利、迪士尼乐园、巴黎圣母院的车站是离它们自身最近的车站。除了 Gare du Nord(它到所有兴趣点的距离为 $1$)以及奥利(它到所有兴趣点的距离为 $1$,但到自身距离为 $0$)之外,所有车站到某个兴趣点的距离为 $2$。因此 Gare du Nord 是无用的。