#include<bits/stdc++.h>
using namespace std;
int n,m,k;int x,y;int ans;
vector<int>a[2550];int d[2550];
bool vis[2550];bool dis[2550];
void dfs(int x,int val,int cnt){
if(cnt==4){
if(vis[x]==1){
ans=max(ans,val);
}
return ;
}
for(int i=0;i<a[x].size();i++){
if(dis[a[x][i]]==0){
dis[a[x][i]]=1;
dfs(a[x][i],val+d[a[x][i]],cnt+1);
dis[a[x][i]]=0;
}
}
}
signed main(){
cin>>n>>m>>k;
for(int i=2;i<=n;i++) cin>>d[i];
for(int i=1;i<=m;i++){
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
for(int i=0;i<a[1].size();i++){
vis[a[1][i]]=1;
}
dfs(1,0,0);
cout<<ans;
return 0;
}