#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
void solve() {
int n, m, k;
cin >> n >> m >> k;
vector<vector<pair<int, int>>> adj(n);
for (int i = 0; i < m; i++) {
int u, v, w;
cin >> u >> v >> w;
u--;
v--;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
}
unordered_set<int> storages;
for (int i = 0; i < k; i++) {
int x;
cin >> x;
x--;
storages.insert(x);
}
int ans = 2e9;
for (auto it = storages.begin(); it != storages.end(); it++) {
for (pair<int, int>& v : adj[*it]) {
if (storages.find(v.first) == storages.end()) {
ans = min(ans, v.second);
}
}
}
if (ans == 2e9) cout << -1 << endl;
else cout << ans << endl;
}
int main() {
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDJlNSArIDU7Cgp2b2lkIHNvbHZlKCkgewoJaW50IG4sIG0sIGs7CgljaW4gPj4gbiA+PiBtID4+IGs7Cgl2ZWN0b3I8dmVjdG9yPHBhaXI8aW50LCBpbnQ+Pj4gYWRqKG4pOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCQlpbnQgdSwgdiwgdzsKCQljaW4gPj4gdSA+PiB2ID4+IHc7CgkJdS0tOwoJCXYtLTsKCQlhZGpbdV0ucHVzaF9iYWNrKHt2LCB3fSk7CgkJYWRqW3ZdLnB1c2hfYmFjayh7dSwgd30pOwoJfQoJdW5vcmRlcmVkX3NldDxpbnQ+IHN0b3JhZ2VzOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBrOyBpKyspIHsKCQlpbnQgeDsKCQljaW4gPj4geDsKCQl4LS07CgkJc3RvcmFnZXMuaW5zZXJ0KHgpOwoJfQoJaW50IGFucyA9IDJlOTsKCWZvciAoYXV0byBpdCA9IHN0b3JhZ2VzLmJlZ2luKCk7IGl0ICE9IHN0b3JhZ2VzLmVuZCgpOyBpdCsrKSB7CgkJZm9yIChwYWlyPGludCwgaW50PiYgdiA6IGFkalsqaXRdKSB7CgkJCWlmIChzdG9yYWdlcy5maW5kKHYuZmlyc3QpID09IHN0b3JhZ2VzLmVuZCgpKSB7CgkJCQlhbnMgPSBtaW4oYW5zLCB2LnNlY29uZCk7CgkJCX0KCQl9Cgl9CglpZiAoYW5zID09IDJlOSkgY291dCA8PCAtMSA8PCBlbmRsOwoJZWxzZSBjb3V0IDw8IGFucyA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKCXNvbHZlKCk7Cn0=