编程题
### 问题描述
可可在一款游戏中控制一个角色,目标是从起点(节点 1)尽快到达终点(节点 $N$)。游戏中有多个节点和连接节点的通道,每个通道在特定时刻开放,开放后可自由使用。角色每秒必须通过一个通道,不能在节点中停留。现在可可需要计算从起点到终点的最短时间。
### 输入格式
第一行包含两个整数 $N$ 和 $M$,表示节点和通道的数量。
接下来 $M$ 行,每行包含三个整数 $a$,$b$,$c$,表示节点 $a$ 和节点 $b$ 之间的通道在时刻 $c$ 开放。
### 输出格式
如果无法到达终点,输出 `-1`。
否则,输出一个整数,表示从起点到终点的最短时间。
### 样例输入
```
3 2
1 2 0
1 3 5
```
### 样例输出
```
7
```
### 评测数据规模
- $2 \leq N \leq 5000$
- $1 \leq M \leq 5000$
- 通道开放的时刻介于 $0$ 和 $10^9$ 之间
- 至少有一个通道在时刻 $0$ 开放且与节点 1 相连