#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000],b[1000][1000],c[1000],u,v,maxx,cnt;
queue<int>q;
void dfs(int z){
maxx=max(maxx,cnt);
for(int i=1;i<=n;i++){
if(b[i][z]==1&&c[i]==0){
c[i]=1;
cnt+=a[i];
dfs(i);
c[i]=0;
cnt-=a[i];
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++){
cin>>u>>v;
b[u][v]=1;
b[v][u]=1;
}
for(int i=1;i<=n;i++){
c[i]=1;
cnt=a[i];
dfs(i);
for(int i=1;i<=n;i++)c[i]=0;
}
cout<<maxx;
return 0;
}