#include <iostream>
#include <algorithm>
using namespace std;
int N,M,R,r[10],a,b,c;
int d[201][201];
int main(){
    cin>>N>>M>>R;
    for(int i=1;i<=N;i++){
        for(int j=1;j<=N;j++){
            if(i==j)d[i][j]=0;
            else d[i][j]=1e9;
        }
    }
    for(int i=0;i<R;i++)cin>>r[i];
    for(int i=0;i<M;i++){
        cin>>a>>b>>c;
        d[a][b]=c;
        d[b][a]=c;
    }
    sort(r,r+R);
    for(int k=1;k<=N;k++)
        for(int i=1;i<=N;i++)
            for(int j=1;j<=N;j++)
                d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
    int ans=1e9,num;
    do{
        num=0;
        for(int i=1;i<R;i++)num+=d[r[i-1]][r[i]];
        ans=min(ans,num);
    }while(next_permutation(r,r+R));
    cout<<ans<<endl;
}