#include <bits/stdc++.h>
#define FOR(i,a,b) for (int i = a; i <= b; i++)
using namespace std;
const int MAXN = 1005;
const long long INF = 1e18;
vector<pair<int,int>> adj[MAXN];
long long d[MAXN];
long long dist[MAXN][MAXN];
int store[MAXN];
int n,k,m;
void sub1() {
FOR(i,1,n)
FOR(j,1,n)
if (i != j) dist[i][j] = INF;
FOR(u,1,n)
for (auto [v,w] : adj[u])
dist[u][v] = min(dist[u][v], 1LL*w);
FOR(t,1,n)
FOR(i,1,n)
FOR(j,1,n)
dist[i][j] = min(dist[i][j], dist[i][t] + dist[t][j]);
long long res = INF;
FOR(i,1,n) {
long long temp = 0;
FOR(j,1,k) temp = max(temp, dist[i][store[j]]);
res = min(res, temp);
}
cout << res;
}
long long dijkstra(int s) {
memset(d, 0x3f, sizeof(d));
d[s] = 0;
priority_queue<pair<long long,int>> pq;
pq.push({0,s});
while(!pq.empty()) {
long long val = -pq.top().first;
int u = pq.top().second;
pq.pop();
if (val > d[u]) continue;
for (auto [v,w] : adj[u]) {
if (d[v] > d[u] + w) {
d[v] = d[u] + w;
pq.push({-d[v], v});
}
}
}
long long temp = 0;
FOR(i,1,k)
temp = max(temp, d[store[i]]);
return temp;
}
void sub2() {
long long res = INF;
FOR(i,1,n) res = min(res, dijkstra(i));
cout << res;
}
int main() {
cin >> n >> k >> m;
FOR(i,1,k) cin >> store[i];
FOR(i,1,m) {
int u,v,c;
cin >> u >> v >> c;
adj[u].push_back({v,c});
adj[v].push_back({u,c});
}
if (n <= 100) sub1();
else sub2();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksYSxiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyBpKyspCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWE4gPSAxMDA1Owpjb25zdCBsb25nIGxvbmcgSU5GID0gMWUxODsKCnZlY3RvcjxwYWlyPGludCxpbnQ+PiBhZGpbTUFYTl07CmxvbmcgbG9uZyBkW01BWE5dOwpsb25nIGxvbmcgZGlzdFtNQVhOXVtNQVhOXTsKaW50IHN0b3JlW01BWE5dOwppbnQgbixrLG07Cgp2b2lkIHN1YjEoKSB7CiAgICBGT1IoaSwxLG4pCiAgICAgICAgRk9SKGosMSxuKQogICAgICAgICAgICBpZiAoaSAhPSBqKSBkaXN0W2ldW2pdID0gSU5GOwogICAgRk9SKHUsMSxuKQogICAgICAgIGZvciAoYXV0byBbdix3XSA6IGFkalt1XSkKICAgICAgICAgICAgZGlzdFt1XVt2XSA9IG1pbihkaXN0W3VdW3ZdLCAxTEwqdyk7CgogICAgRk9SKHQsMSxuKQogICAgICAgIEZPUihpLDEsbikKICAgICAgICAgICAgRk9SKGosMSxuKQogICAgICAgICAgICAgICAgZGlzdFtpXVtqXSA9IG1pbihkaXN0W2ldW2pdLCBkaXN0W2ldW3RdICsgZGlzdFt0XVtqXSk7CgogICAgbG9uZyBsb25nIHJlcyA9IElORjsKICAgIEZPUihpLDEsbikgewogICAgICAgIGxvbmcgbG9uZyB0ZW1wID0gMDsKICAgICAgICBGT1IoaiwxLGspIHRlbXAgPSBtYXgodGVtcCwgZGlzdFtpXVtzdG9yZVtqXV0pOwogICAgICAgIHJlcyA9IG1pbihyZXMsIHRlbXApOwogICAgfQogICAgY291dCA8PCByZXM7Cn0KCmxvbmcgbG9uZyBkaWprc3RyYShpbnQgcykgewogICAgbWVtc2V0KGQsIDB4M2YsIHNpemVvZihkKSk7CiAgICBkW3NdID0gMDsKCiAgICBwcmlvcml0eV9xdWV1ZTxwYWlyPGxvbmcgbG9uZyxpbnQ+PiBwcTsKICAgIHBxLnB1c2goezAsc30pOwoKICAgIHdoaWxlKCFwcS5lbXB0eSgpKSB7CgogICAgICAgIGxvbmcgbG9uZyB2YWwgPSAtcHEudG9wKCkuZmlyc3Q7CiAgICAgICAgaW50IHUgPSBwcS50b3AoKS5zZWNvbmQ7CiAgICAgICAgcHEucG9wKCk7CgogICAgICAgIGlmICh2YWwgPiBkW3VdKSBjb250aW51ZTsKCiAgICAgICAgZm9yIChhdXRvIFt2LHddIDogYWRqW3VdKSB7CiAgICAgICAgICAgIGlmIChkW3ZdID4gZFt1XSArIHcpIHsKICAgICAgICAgICAgICAgIGRbdl0gPSBkW3VdICsgdzsKICAgICAgICAgICAgICAgIHBxLnB1c2goey1kW3ZdLCB2fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cglsb25nIGxvbmcgdGVtcCA9IDA7CiAgICBGT1IoaSwxLGspCiAgICAgICAgdGVtcCA9IG1heCh0ZW1wLCBkW3N0b3JlW2ldXSk7CiAgICByZXR1cm4gdGVtcDsKfQoKdm9pZCBzdWIyKCkgewogICAgbG9uZyBsb25nIHJlcyA9IElORjsKICAgIEZPUihpLDEsbikgcmVzID0gbWluKHJlcywgZGlqa3N0cmEoaSkpOwogICAgY291dCA8PCByZXM7Cn0KCmludCBtYWluKCkgewogICAgY2luID4+IG4gPj4gayA+PiBtOwogICAgRk9SKGksMSxrKSBjaW4gPj4gc3RvcmVbaV07CgogICAgRk9SKGksMSxtKSB7CiAgICAgICAgaW50IHUsdixjOwogICAgICAgIGNpbiA+PiB1ID4+IHYgPj4gYzsKICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHt2LGN9KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHt1LGN9KTsKICAgIH0KCiAgICBpZiAobiA8PSAxMDApIHN1YjEoKTsKCWVsc2Ugc3ViMigpOwoKCXJldHVybiAwOwp9Cg==