#include <bits/stdc++.h>
#define FOR(i,l,r) for(int i = l ; i <= r ; i ++)
#define FORD(i,r,l) for(int i = r ; i >= l ; i --)
#define REP(i, a ) for(int i = 0 ; i < a ; i ++ )
#define compare(v) sort((v).begin(), (v).end()); (v).erase(unique((v).begin(), (v).end()), (v).end());
#define ll long long
#define el "\n"
#define fi first
#define se second
#define _ROOT_ int main()
#define M 1000000007
#define MAXN 1000001
#define INF (1ll<<30)
#define NAME "file"
using namespace std;
ll n, m, q, k, cnt ;
ll a[MAXN] ;
ll lab[MAXN] ;
ll have_important[MAXN ] ;
vector<ll> important ;
vector<ll> adj[MAXN ] ;
bool visited[MAXN ] ;
void dfs(ll u ) {
if(visited[u]) return ;
visited[u] = true ;
cnt ++ ;
for(ll v : adj[u]) if(!visited[v]) dfs(v ) ;
}
ll find_set(ll a ) {
return lab[a] < 0 ? a : lab[a] = find_set(lab[a]) ;
}
bool union_set(ll a, ll b ) {
a = find_set(a) ;
b = find_set(b) ;
if(a == b ) return false ;
if(have_important[a] && have_important[b]) return false ;
if(lab[a] > lab[b]) swap(a, b ) ;
lab[a] += lab[b] ;
adj[a].push_back(b) ;
adj[b].push_back(a ) ;
have_important[a] += have_important[b] ;
lab[b] = a ;
return true ;
}
struct Edge {
ll u, v, w ;
bool operator < ( const Edge & other ) const {
return w < other.w ;
}
};
vector < Edge > e ;
void init() {
cin >> n >> m >> k ;
FOR(i, 1, n ) lab[i] = - 1 ;
FOR(i, 1, k ) {
ll x ;
cin >> x ;
important.push_back(x) ;
have_important[x] = 1 ;
}
FOR(i, 1, m ) {
ll x, y, w ;
cin >> x >> y >> w ;
e.push_back({x, y, w }) ;
}
sort(e.begin(), e.end() ) ;
}
void solve() {
ll cnt = 0, ans = 0 ;
for(auto [u, v, w ] : e ) {
if(union_set(u, v )) {
ans += w ;
// cout << " ok " << el ;
}
}
FOR(i , 1 , n ) {
if(lab[i] < 0 ) {
if(!have_important[find_set(i)]) {
cout << -1 << el ;
return ;
}
}
}
// cout << cnt << " cnt " << el ;
// if(cnt != n ) {
// cout << -1 << el ;
// return ;
// }
cout << ans << el ;
}
_ROOT_ {
// freopen(NAME".inp" , "r" , stdin);
// freopen(NAME".out" , "w", stdout) ;
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t = 1; // cin >> t ;
while(t--) {
init();
solve();
}
return (0&0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksbCxyKSBmb3IoaW50IGkgPSBsIDsgaSA8PSByIDsgaSArKykKI2RlZmluZSBGT1JEKGkscixsKSBmb3IoaW50IGkgPSByIDsgaSA+PSBsIDsgaSAtLSkKI2RlZmluZSBSRVAoaSwgYSApIGZvcihpbnQgaSA9IDAgOyBpIDwgYSA7IGkgKysgKQojZGVmaW5lIGNvbXBhcmUodikgc29ydCgodikuYmVnaW4oKSwgKHYpLmVuZCgpKTsgKHYpLmVyYXNlKHVuaXF1ZSgodikuYmVnaW4oKSwgKHYpLmVuZCgpKSwgKHYpLmVuZCgpKTsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbCAiXG4iCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBfUk9PVF8gaW50IG1haW4oKQojZGVmaW5lIE0gMTAwMDAwMDAwNwojZGVmaW5lIE1BWE4gMTAwMDAwMQojZGVmaW5lIElORiAoMWxsPDwzMCkKI2RlZmluZSBOQU1FICJmaWxlIgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbGwgbiwgbSwgcSwgaywgY250IDsKbGwgYVtNQVhOXSA7CmxsIGxhYltNQVhOXSA7CmxsIGhhdmVfaW1wb3J0YW50W01BWE4gXSA7CnZlY3RvcjxsbD4gaW1wb3J0YW50IDsKdmVjdG9yPGxsPiBhZGpbTUFYTiBdIDsKYm9vbCB2aXNpdGVkW01BWE4gXSA7Cgp2b2lkIGRmcyhsbCB1ICkgewogICAgaWYodmlzaXRlZFt1XSkgcmV0dXJuIDsKICAgIHZpc2l0ZWRbdV0gPSB0cnVlIDsKICAgIGNudCArKyA7CmZvcihsbCB2IDogYWRqW3VdKSBpZighdmlzaXRlZFt2XSkgZGZzKHYgKSA7Cn0KCmxsIGZpbmRfc2V0KGxsIGEgKSB7CiAgICByZXR1cm4gbGFiW2FdIDwgMCA/IGEgOiBsYWJbYV0gPSBmaW5kX3NldChsYWJbYV0pIDsKfQoKYm9vbCB1bmlvbl9zZXQobGwgYSwgbGwgYiApIHsKICAgIGEgPSBmaW5kX3NldChhKSA7CiAgICBiID0gZmluZF9zZXQoYikgOwogICAgaWYoYSA9PSBiICkgcmV0dXJuIGZhbHNlIDsKICAgIGlmKGhhdmVfaW1wb3J0YW50W2FdICYmIGhhdmVfaW1wb3J0YW50W2JdKSByZXR1cm4gZmFsc2UgOwogICAgaWYobGFiW2FdID4gbGFiW2JdKSBzd2FwKGEsIGIgKSA7CiAgICBsYWJbYV0gKz0gbGFiW2JdIDsKICAgIGFkalthXS5wdXNoX2JhY2soYikgOwogICAgYWRqW2JdLnB1c2hfYmFjayhhICkgOwogICAgaGF2ZV9pbXBvcnRhbnRbYV0gKz0gaGF2ZV9pbXBvcnRhbnRbYl0gOwogICAgbGFiW2JdID0gYSA7CiAgICByZXR1cm4gdHJ1ZSA7Cn0KCnN0cnVjdCBFZGdlIHsKICAgIGxsIHUsIHYsIHcgOwogICAgYm9vbCBvcGVyYXRvciA8ICggY29uc3QgRWRnZSAmIG90aGVyICkgY29uc3QgewogICAgICAgIHJldHVybiB3IDwgb3RoZXIudyA7CiAgICB9Cn07Cgp2ZWN0b3IgPCBFZGdlID4gZSA7Cgp2b2lkIGluaXQoKSB7CiAgICBjaW4gPj4gbiA+PiBtID4+IGsgOwoKICAgIEZPUihpLCAxLCBuICkgbGFiW2ldID0gLSAxIDsKCiAgICBGT1IoaSwgMSwgayApIHsKICAgICAgICBsbCB4ICA7CiAgICAgICAgY2luID4+IHggOwogICAgICAgIGltcG9ydGFudC5wdXNoX2JhY2soeCkgOwogICAgICAgIGhhdmVfaW1wb3J0YW50W3hdID0gMSA7CiAgICB9CiAgICBGT1IoaSwgMSwgbSApIHsKICAgICAgICBsbCB4LCB5LCB3IDsKICAgICAgICBjaW4gPj4geCA+PiB5ID4+IHcgOwogICAgICAgIGUucHVzaF9iYWNrKHt4LCB5LCB3IH0pIDsKICAgIH0KICAgIHNvcnQoZS5iZWdpbigpLCBlLmVuZCgpICkgOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgbGwgY250ID0gMCwgYW5zID0gMCA7CiAgICBmb3IoYXV0byBbdSwgdiwgdyBdIDogZSApIHsKICAgICAgICBpZih1bmlvbl9zZXQodSwgdiApKSB7CiAgICAgICAgICAgIGFucyArPSB3IDsKLy8gICAgICAgICAgICBjb3V0IDw8ICIgb2sgIiA8PCBlbCA7CiAgICAgICAgfQogICAgfQoKICAgIEZPUihpICwgMSAsIG4gKSB7CiAgICBpZihsYWJbaV0gPCAwICkgewogICAgICAgIGlmKCFoYXZlX2ltcG9ydGFudFtmaW5kX3NldChpKV0pIHsKICAgICAgICAgICAgY291dCA8PCAtMSA8PCBlbCA7CiAgICAgICAgICAgIHJldHVybiA7CiAgICAgICAgfQogICAgfQogICAgfQovLyAgICBjb3V0IDw8IGNudCA8PCAiIGNudCAiIDw8IGVsIDsKLy8gICAgaWYoY250ICE9IG4gKSB7Ci8vICAgICAgICBjb3V0IDw8IC0xIDw8IGVsIDsKLy8gICAgICAgIHJldHVybiA7Ci8vICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8IGVsIDsKfQoKX1JPT1RfIHsKICAgIC8vIGZyZW9wZW4oTkFNRSIuaW5wIiAsICJyIiAsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oTkFNRSIub3V0IiAsICJ3Iiwgc3Rkb3V0KSA7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaW50IHQgPSAxOyAvLyBjaW4gPj4gdCA7CiAgICB3aGlsZSh0LS0pIHsKICAgICAgICBpbml0KCk7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAoMCYwKTsKfQo=