蜗蜗正在操作无人机。
空中有 $n$ 块区域,编号为 $1$ 到 $n$。每一块区域都有一个高度要求,进入区域 $i$ 时,需要保证无人机的高度不低于 $a_i$。保证 $a_1=a_n=0$。
由于存在一些禁飞场所,所以无人机只能在某些特定的航线上双向飞行。有 $m$ 条航线,第 $i$ 条航线连接着区域 $x_i$ 与 $y_i$。并且这 $m$ 条航线能使 $n$ 块区域两两可达。
现在,蜗蜗操纵着无人机在 $1$ 号区域待机,当前高度为 $0$。他希望降落在 $n$ 号区域,降落时高度也为 $0$。每一分钟,蜗蜗可以让无人机的高度上升 $1$、下降 $1$ 或保持不变,同时可以让无人机通过某一条航线或者不移动。
蜗蜗想知道从 $1$ 号区域出发,在 $n$ 号区域降落,所需的最小时间。
输入格式
第一行包含两个整数 $n$, $m$。
第二行包含 $n$ 个整数 $a_1, a_2,\cdots, a_n$。
接下来 $m$ 行,每行包含两个整数 $x_i,y_i$。
输出格式
输出一行包含一个整数,表示答案。
样例输入 1
3 2
0 2 0
1 2
2 3
样例输出 1
4
样例输入 2
11 12
0 0 0 0 0 0 2 2 1 5 0
1 2
2 3
3 4
4 5
5 6
6 11
1 7
7 8
8 9
9 11
1 10
10 11
样例输出 2
5
样例3-6
见附件文件。样例 3-6 分别满足子任务 1-4 的限制。
样例解释
样例 1:
第 $1$ 分钟,高度从 $0$ 变为 $1$,不移动;
第 $2$ 分钟,高度从 $1$ 变为 $2$,同时从区域 $1$ 移动到区域 $2$;
第 $3$ 分钟,高度从 $2$ 变为 $1$,同时从区域 $2$ 移动到区域 $3$;
第 $4$ 分钟,同时高度从 $1$ 变为 $0$,不移动。
所以答案为 $4$。
数据范围
本题采用捆绑测试。
子任务 1(25分):$m=n-1,x_i=i,y_i=i+1$。
子任务 2(20分):$n\leq 2000$,$m\leq 4000$,$a_i\leq 2000$。
子任务 3(25分):$n\leq 2000$,$m\leq 4000$。
子任务 4(30分):无特殊限制。
对于所有数据,保证 $1\leq n\leq 2\times 10^5$, $1\leq m\leq 4\times 10^5$, $0\leq a_i\leq 10^8$, $a_1=a_n=0$, $1\leq x_i,y_i\leq n$,$x_i\ne y_i$。