#include<bits/stdc++.h>
using namespace std;
int cow[820];
int w[820][820];
int dis[820],pre[820];
int f[820];
int max_=100000000;
int clean(int n){
for(int l=0;l<=n;++l)
{
dis[l]=max_;
pre[l]=0;
f[l]=0;
}
}
int dij(int n,int x){
clean(n);
f[0]=1;
dis[x]=0;
pre[x]=0;
for(int i=1;i<=n;++i)
{
int q=0;
for(int j=1;j<=n;++j)
if(f[j]==0&&dis[j]<dis[q])
q=j;
f[q]=1;
if(q==0)
break;
for(int j=1;j<=n;++j)
if(dis[j]>dis[q]+w[q][j]&&w[q][j]!=0)
{
dis[j]=dis[q]+w[q][j];
pre[j]=q;
}
}
}
int main(){
int n_cow,n,m;
cin>>n_cow>>n>>m;
for(int i=1;i<=n_cow;++i)
cin>>cow[i];
for(int i=1;i<=m;++i)
{
int x,y,l;
cin>>x>>y>>l;
w[x][y]=l;
w[y][x]=l;
}
int minn=max_;
for(int i=1;i<=n;++i)
{
int s=0;
dij(n,i);
for(int j=1;j<=n_cow;++j)
s=s+dis[cow[j]];
minn=min(minn,s);
}
cout<<minn;
return 0;
}