#P2001. 开放世界

开放世界

Background

旅行者,在广袤的大陆里自由探索吧。

Description

大陆上分布着 n(1n6×105)n(1 \leq n \leq 6 \times 10^5) 座城市,有 m(n1m6×105)m(n - 1 \leq m \leq 6 \times 10^5) 条双向道路连接这些城市,通过道路需要消耗相应的体力,而旅行者每天只有 k(1k5000)k(1 \leq k \leq 5000) 点体力值。出生在边远小城 11 的他想要前往圣城 nn , 请你告诉他最少需要几天。

Format

Input

第一行三个整数 n,m,kn, m, k

接下来 mm 行,每行三个整数 u,v,wu, v, w 表示城市 uu 和城市 v(1u,vn)v (1 \leq u, v \leq n) 之间有一条需要消耗 w(1wk)w(1 \leq w \leq k) 点体力值的道路

Output

一个整数,表示最少需要几天到达圣城

Samples

1 0 1
1
9 12 3
1 2 1
1 4 1
2 3 1
2 5 2
3 6 1
4 5 2
4 7 1
5 6 2
5 8 2
6 9 1
7 8 1
8 9 1
2

Hint

(1)--1--(2)--1--(3)
 |       |       |
 1       2       1
 |       |       |
(4)--2--(5)--2--(6)
 |       |       |
 1       2       1
 |       |       |
(7)--1--(8)--1--(9)

一种可行的方案是,第一天消耗 11 点体力走到 22 , 第二天开始时体力由 22 恢复到 33 , 消耗 33 点体力,经由 3,63, 6 走到 99 .