#include<bits/stdc++.h>
using namespace std;
int n,m,q,w[3000],mp[3000][3000],s,x,y;
int main(){
cin>>n>>m>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
mp[i][j]=99999;
if(i==j){
mp[i][j]=0;
}
}
}
for(int i=2;i<=n;i++){
cin>>w[i];
}
for(int i=1;i<=m;i++){
cin>>x>>y;
mp[x][y]=mp[y][x]=1;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
mp[j][k]=min(mp[j][i]+mp[k][i],mp[j][k]);
}
}
}
q++;
for(int a=2;a<=n;a++){
if(mp[a][1]>q){
continue;
}
for(int b=2;b<=n;b++){
if(a==b||mp[a][b]>q){
continue;
}
for(int c=2;c<=n;c++){
if(a==c||b==c||mp[b][c]>q){
continue;
}
for(int d=2;d<=n;d++){
if(a==d||b==d||c==d||mp[c][d]>q||mp[d][1]>q){
continue;
}else{
s=max(w[a]+w[b]+w[c]+w[d],s);
}
}
}
}
}
cout<<s;
return 0;
}