你负责设计一个用于智能汽车的先进集中式交通管理系统。目标是利用全局信息,指导早高峰期间从郊区前往市中心的通勤者,在避开交通拥堵的同时找到前往市中心的最佳路线。
遗憾的是,由于通勤者了解城市情况且具有自私心理,你不能简单地让他们走比正常路线更耗时的路径(否则他们会直接无视你的指令)。你只能说服他们改走同样快速的路线。
该城市的道路网络由多个交叉路口组成,这些路口通过具有不同通行时间的双向道路连接。每位通勤者从某个交叉路口出发,出发点因人而异。所有通勤者的目的地相同,即位于交叉路口 1 的市中心。如果两名通勤者试图在同一时间沿同一条道路向同一方向行驶,就会发生拥堵;你必须避免这种情况。然而,如果两名通勤者同时经过同一个交叉路口,或者他们在不同时间使用同一条道路,则是允许的。
在所有通勤者同时出发且无人选择非最优路线的前提下,确定能够不发生拥堵到达市中心的通勤者的最大数量。
图 C.1:样例输入 2 的示意图。
在图 C.1 中,汽车显示在它们各自的初始位置。其中一辆车已经在市中心。在位于交叉路口 4 的车辆中,一辆可以沿经过交叉路口 3 的虚线路径行驶,另一辆可以沿经过交叉路口 2 的虚线路径行驶。但其余两辆车无法在避开拥堵的情况下到达市中心。因此,最多有 3 辆车可以在不发生拥堵的情况下到达市中心。
输入格式
输入包含单个测试用例。第一行包含三个整数 $n$、$m$ 和 $c$,其中 $n$ ($1 \le n \le 25\,000$) 是交叉路口的数量,$m$ ($0 \le m \le 50\,000$) 是道路的数量,$c$ ($0 \le c \le 1\,000$) 是通勤者的数量。接下来的 $m$ 行,每行包含三个整数 $x_i$、$y_i$ 和 $t_i$,描述一条道路,其中 $x_i$ 和 $y_i$ ($1 \le x_i, y_i \le n$) 是该道路连接的两个不同交叉路口,$t_i$ ($1 \le t_i \le 10\,000$) 是沿该道路任一方向行驶所需的时间。你可以假设从每个交叉路口都可以到达市中心。最后一行包含 $c$ 个整数,列出了通勤者的起始交叉路口。
输出格式
输出能够不发生拥堵到达市中心的通勤者的最大数量。
样例
样例输入 1
3 3 2 1 2 42 2 3 1 2 3 1 2 3
样例输出 1
2
样例输入 2
4 4 5 1 2 5 1 3 4 4 2 5 4 3 6 4 4 4 4 1
样例输出 2
3