#include <bits/stdc++.h>
using namespace std;
long long int mod = 10000007;
int main() {
  long long int t, n, r, x, m, i, j, u, v, di, k, ans = 1000000000000000;
  bool bol[100005], f = false;
  long long int mat[3][100005];
  long long int a[100005], d[100005];
  for (i = 0; i < 100005; i++) {
    bol[i] = false;
  }
  cin >> n >> m >> k;
  for (i = 0; i < m; i++) {
    cin >> mat[0][i] >> mat[1][i] >> mat[2][i];
  }
  for (i = 0; i < k; i++) {
    cin >> a[i];
    bol[a[i]] = true;
  }
  for (i = 0; i < m; i++) {
    if (bol[mat[0][i]] == true && bol[mat[1][i]] == false ||
        bol[mat[0][i]] == false && bol[mat[1][i]] == true) {
      ans = min(ans, mat[2][i]);
      f = true;
    }
  }
  if (f)
    cout << ans;
  else
    cout << "-1";
  return 0;
}
