#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
const ll maxA=2e14;
const int maxN=2e5;
vector<int> v[maxN+1]; // adjacency list
ll cst[maxN+1]; // each node -> cost
ll cnt[maxN+1]={0}; // the cost to remove node ( original )
ll tmp[maxN+1]; // the cost to remove node
deque<int> dq; // the node to remove
int N, M, a, b;
bool check(ll num){
ll count=0;
for(int i=1;i<=N;i++){
tmp[i]=cnt[i];
if( tmp[i]<=num ){
dq.push_back(i);
tmp[i]=-1;
count++;
}
}
while( !dq.empty() ){
int n=dq.front();
dq.pop_front();
for(int i=0;i<v[n].size();i++){
int now=v[n][i];
if( tmp[ now ]<0 ) continue;
tmp[ now ]-=cst[n];
if( tmp[now]<=num ){
dq.push_back(now);
tmp[now]=-1;
count++;
}
}
}
if( count==N ) return true;
return false;
}
int main() {
cin>>N>>M;
for(int i=1;i<=N;i++)
cin>>cst[i];
for(int i=0;i<M;i++){
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
ll L=maxA;
ll R=0;
for(int i=1;i<=N;i++){
for(int j=0;j<v[i].size();j++){
cnt[i]+=cst[ v[i][j] ];
}
L=min(L,cnt[i]);
R=max(R,cnt[i]);
}
ll ans;
while( L<=R ){
ll M=(L+R)/2;
if( check(M) ){
R=M-1;
ans=M;
}
else L=M+1;
}
cout<<ans;
//for(int i=1;i<=N;i++)
// cout<<cnt[i]<<' ';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7Cgpjb25zdCBsbCBtYXhBPTJlMTQ7CmNvbnN0IGludCBtYXhOPTJlNTsKdmVjdG9yPGludD4gdlttYXhOKzFdOyAvLyBhZGphY2VuY3kgbGlzdApsbCBjc3RbbWF4TisxXTsgLy8gZWFjaCBub2RlIC0+IGNvc3QKbGwgY250W21heE4rMV09ezB9OyAvLyB0aGUgY29zdCB0byByZW1vdmUgbm9kZSAoIG9yaWdpbmFsICkKbGwgdG1wW21heE4rMV07IC8vIHRoZSBjb3N0IHRvIHJlbW92ZSBub2RlCmRlcXVlPGludD4gZHE7IC8vIHRoZSBub2RlIHRvIHJlbW92ZQppbnQgTiwgTSwgYSwgYjsKCmJvb2wgY2hlY2sobGwgbnVtKXsKCWxsIGNvdW50PTA7CgkJCglmb3IoaW50IGk9MTtpPD1OO2krKyl7CgkJdG1wW2ldPWNudFtpXTsKCQlpZiggdG1wW2ldPD1udW0gKXsKCQkJZHEucHVzaF9iYWNrKGkpOwoJCQl0bXBbaV09LTE7CgkJCWNvdW50Kys7CgkJfQkKCX0KCXdoaWxlKCAhZHEuZW1wdHkoKSApewoJCWludCBuPWRxLmZyb250KCk7CgkJZHEucG9wX2Zyb250KCk7CgkJCgkJZm9yKGludCBpPTA7aTx2W25dLnNpemUoKTtpKyspewoJCQlpbnQgbm93PXZbbl1baV07CgkJCWlmKCB0bXBbIG5vdyBdPDAgKSBjb250aW51ZTsKCQkJdG1wWyBub3cgXS09Y3N0W25dOwoJCQlpZiggdG1wW25vd108PW51bSApewoJCQkJZHEucHVzaF9iYWNrKG5vdyk7CgkJCQl0bXBbbm93XT0tMTsKCQkJCWNvdW50Kys7CgkJCX0KCQl9Cgl9CglpZiggY291bnQ9PU4gKSByZXR1cm4gdHJ1ZTsKCXJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CgljaW4+Pk4+Pk07Cglmb3IoaW50IGk9MTtpPD1OO2krKykKCQljaW4+PmNzdFtpXTsKCWZvcihpbnQgaT0wO2k8TTtpKyspewoJCWNpbj4+YT4+YjsKCQl2W2FdLnB1c2hfYmFjayhiKTsKCQl2W2JdLnB1c2hfYmFjayhhKTsKCX0KCWxsIEw9bWF4QTsKCWxsIFI9MDsKCWZvcihpbnQgaT0xO2k8PU47aSsrKXsKCQlmb3IoaW50IGo9MDtqPHZbaV0uc2l6ZSgpO2orKyl7CgkJCWNudFtpXSs9Y3N0WyB2W2ldW2pdIF07CgkJfQoJCUw9bWluKEwsY250W2ldKTsKCQlSPW1heChSLGNudFtpXSk7Cgl9CgkKCWxsIGFuczsKCXdoaWxlKCBMPD1SICl7CgkJbGwgTT0oTCtSKS8yOwoJCWlmKCBjaGVjayhNKSApewoJCQlSPU0tMTsKCQkJYW5zPU07CgkJfQoJCWVsc2UgTD1NKzE7Cgl9Cgljb3V0PDxhbnM7CgkKCS8vZm9yKGludCBpPTE7aTw9TjtpKyspCgkvLwljb3V0PDxjbnRbaV08PCcgJzsKCQkKCQkKfQ==