fake!
题号:NC220836
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在zut中总有一群学习很好还很爱装弱的人,我们称之为假人。在这里我们设共有n个假人,分别将他们标号为1,2,......n
这群假人中,有若干人互为朋友关系,设总共有m对朋友
有一天,这群假人在一起参加了一场比赛,作为这场比赛的评委,你将给这群假人打分
已知第i个假人对自己的最低要求分是ai,如果低于这个标准分,他就会不快乐
同时,如果一个假人得分小于他某个朋友的分数,他也会不快乐
你最少要给这些假人们共多少分,才能保证他们人人快乐呢?

输入描述:

第一行为两个整数n,m (1 <= n <= 2000 , 0 <= m <= 2000)
第二行为n个整数ai (1 <= ai <= 109)
接下来m行,每行两个数u,v ,表示一对朋友关系 (1 <= u,v <= n, 保证u与v不相等)

输出描述:

给出的最少总分使得每个假人都快乐
示例1

输入

复制
3 1
10 20 30
1 2

输出

复制
70

说明

给第三个假人30分,前两个假人各20分,总共至少给出70分
如果只给第一个假人10分,那么他在看到自己的好朋友得了20分的情况下,他就会不快乐