编程题
### 问题描述
蓝桥镇有 $n$ 个村子,编号 $1 \sim n$,有些村子通过一些道路连接起来了。
如果两个村子能过通过道路直接或者间接相连,我们认为他们属于一个村子联盟。
每个村子里有一个工厂,生产力为 $p_i$,他们生产居民必须的日常用品,一个村子联盟的生产力这个联盟的第一和第二大的生产力之和。
**注意**:如果某个联盟只有一个村子,那么生产力为这个村子的生产力乘以 $2$。
小蓝想知道,在蓝桥镇中,最小的村子联盟生产力是多少?
你需要回答这个问题。
### 输入格式
第一行输入两个整数 $n$,$m$,$n$ 为村子数量,$m$ 为道路数量。
第二行输入 $n$ 个整数,$p_1, p_2, p_3, ..., p_n$ 代表第 $i$ 个工厂的生产力。
接下来 $m$ 行,每行两个整数 $u, v$,代表这条道路直接连接 $u,v$ 两个村子。
### 输出格式
一个整数,代表最大生产力。
### 样例输入
```
5 3
4 3 4 6 10
1 2
2 3
4 5
```
### 样例输出
```
8
```
### 评测数据范围
$2 \le n,m \le 2 \times 10^4, 1 \le u, v \le n, 1 \le p_i \le 10^4$。