#include<bits/stdc++.h>
using namespace std;
int g[256][256];
int dist[256];
int sav[256];
int n,m,k;
bool in[256];
int ans;
void work(){
	memset(dist,127,sizeof(dist));
	memset(in,0,sizeof(in));
	for(int i=1;i<=k;i++)
		in[sav[i]]=true;
	for(int i=1;i<=k;i++){
		int x=sav[i];
		for(int j=1;j<=n;j++)
			if(g[x][j]!=-1)
				dist[j]=min(dist[j],g[x][j]);
	}
	int minn,jl;
	while(1){
		minn=100000000;
		jl=-1;
		for(int i=1;i<=n;i++)
			if(!in[i])
				if(dist[i]<minn)
					minn=dist[i],jl=i;
		if(jl==-1) break;
		ans+=minn;
		in[jl]=true;
		for(int i=1;i<=n;i++)
			if(!in[i])
				if(g[jl][i]!=-1)
					dist[i]=min(dist[i],g[jl][i]);
	}
	return ;
}	
int main(){
	int T,cas;
	scanf("%d",&T);
	for(cas=1;cas<=T;cas++){
		printf("Case #%d: ",cas);
		scanf("%d%d%d",&n,&m,&k);
		for(int i=1;i<=k;i++)
			scanf("%d",&sav[i]);
		int u,v,w;
		memset(g,-1,sizeof(g));
		for(int i=1;i<=m;i++){
			scanf("%d%d%d",&u,&v,&w);
			g[u][v]=g[v][u]=w;
		}
		ans=0;
		work();
		printf("%d\n",ans);
	}
}
