#include<bits/stdc++.h>
using namespace std;
int n,m,s;
const int INF=1e9;
const int N=1e5+50;
int arr[N];
int arr1[610][610];
void Folyd()
{
int i,j,k;
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
for(k=1;k<=m;k++)
{
arr1[j][k]=min(arr1[j][k],arr1[j][i]+arr1[i][k]);
}
}
}
}
int main()
{
int i,j;
cin>>n>>m>>s;
for(i=0;i<n;i++)
{
cin>>arr[i];
}
for(i=0;i<610;i++)
{
for(j=0;j<610;j++)
arr1[i][j]=INF;
}
for(i=0;i<610;i++)
{
arr1[i][i]=0;
}
for(i=0;i<s;i++)
{
int w1,w2,w3;
cin>>w1>>w2>>w3;
arr1[w1][w2]=arr1[w2][w1]=w3;
}
Folyd();
int min=INF;
for(i=1;i<=m;i++)
{
int sum=0;
for(j=0;j<n;j++)
{
sum=sum+arr1[i][arr[j]];
}
if(min>sum)
min=sum;
}
cout<<min;
return 0;
}