#include<bits/stdc++.h>
using namespace std;
int f[451],ans[451];
int find(int x){
if(f[x]!=x) x=find(f[x]);
return x;
}
void hb(int x,int y){
ans[find(y)]+=ans[find(x)];
f[find(x)]=find(y);
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&ans[i]);
f[i]=i;
}
for(int i=1;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
if(find(u)!=find(v)){
hb(u,v);
}
else{
continue;
}
}
int js=-1;
for(int i=1;i<=n;i++){
js=max(js,ans[i]);
}
printf("%d",js);
return 0;
}