你正在进行一次国际旅行,途中会有几次停留,以放松心情并庆祝你进入 NWERC。由于你的航班通常预订的是廉价航空,你总是面临航班在最后一刻被取消的风险,这会让你滞留在机场。通常这不是什么大问题——搭乘下一个航班即可——但你必须准时到达 NWERC。
如果你的任何一个航班在你即将起飞时被取消,而其他所有航班都按计划运行,你将从那里预订一条前往最终目的地的新行程。假设你总是规划最快的路线,在最坏的情况下,你会延误多久?
输入格式
- 第一行包含航班连接的总数 $n$ ($1 \le n \le 10^6$)。
- 接下来 $n$ 行,第 $i$ 行包含四个以空格分隔的字段:
- 出发机场代码 $s_i$ ($1 \le |s| \le 20$)
- 出发时间,格式为
ddhh:mm($1 \le d \le 365, 0 \le hh \le 23, 0 \le mm \le 59$)。 - 到达机场代码 $t_i$ ($1 \le |s| \le 20$)
- 到达时间,格式为
ddhh:mm($1 \le d \le 365, 0 \le hh \le 23, 0 \le mm \le 59$)。
- 一行包含你行程中的航班连接数 $m$ ($1 \le m \le n$)。
- 一行包含 $m$ 个航班连接的索引 $f_1 \dots f_m$,按你计划乘坐的顺序排列。
航班总是在不同的机场之间运行,并且时间总是严格向前推进。对于你行程中每一对连续的航班 $u, v$,保证航班 $u$ 的到达时间小于或等于航班 $v$ 的出发时间。
转机是瞬时的——也就是说,在同一个机场,在同一分钟内到达并出发是可能的。同样,如果一个计划中的航班被取消,你可以在完全相同的时间搭乘另一个航班出发。
输出格式
输出如果其中任何一个给定的航班在登机时刻被取消,你可能延误的最大时长。如果你在任何情况下都不会延误(甚至可能提前到达),只需输出 0。
如果你不能保证一定能到达目的地,则输出 stranded。
样例
输入格式 1
8 egnx 0d00:10 delft 0d01:00 delft 0d01:00 zad 0d09:00 zad 0d09:01 prg 0d15:30 prg 0d20:00 delft 1d02:15 prg 0d22:00 delft 1d04:15 zad 2d00:00 delft 3d00:00 egnx 2d00:00 delft 2d02:00 egnx 2d00:00 delft 2d02:00 4 1 2 3 4
输出格式 1
2745
输入格式 2
3 ork 101d00:00 noc 101d00:01 ork 100d23:59 noc 101d00:02 dub 100d00:00 ork 101d00:00 2 3 1
输出格式 2
stranded
输入格式 3
2 lax 0d00:30 hnl 0d06:20 lax 0d00:30 hnl 0d06:20 1 2
输出格式 3
0