排列
题号:NC52773
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
Special Judge, 64bit IO Format: %lld

题目描述

Bobo 有一个长度为 n 的数列 和 m 个二元组 .
他想重新排列数列 p,使得 最小。求最小值。

输入描述:

输入文件包含多组数据,请处理到文件结束。
每组数据的第一行包含 2 个整数 n 和 m。
第二行包含 n 个整数 .
最后 m 行的第 i 行包含 2 个整数 a_ib_i.

输出描述:

对于每组数据输出 1 个整数表示所求的最小值。
示例1

输入

复制
3 2
1 2 5
1 2
2 3
3 3
1 2 5
1 2
1 3
2 3
20 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

输出

复制
4
8
0

备注:

* 
*
*
*
* 对于 .
* 数据组数不超过 5,000,且只有 1 组数据的 n > 10.