func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1e5 + 10;   int n, m, k, par[maxn], ans[maxn];   bool arr[maxn];   pair<int, pair<int, int>> e[maxn];   int get_path(int v) { return par[v] < 0 ? v : (par[v] = get_path(par[v])); }   void merge(int v, int u) {     if ((v = get_path(v)) == (u = get_path(u))) return;     if (par[v] < par[u]) swap(v, u);     par[u] += par[v];     par[v] = u;     arr[u] = arr[u] || arr[v];   }   int main() {     ios_base::sync_with_stdio(false);     cin >> n >> m >> k;     for (int i = 0; i < k; i++) {       int x;       cin >> x;       arr[x] = 1;     }     for (int i = 0; i < m; i++) {       int u, v, w;       cin >> u >> v >> w;       e[i] = {w, {u, v}};     }     sort(e, e + m);     int ind;     memset(par, -1, sizeof(par));     for (int i = 0; i < m; i++) {       int u = e[i].second.first, v = e[i].second.second;       if ((u = get_path(u)) != (v = get_path(v)) && arr[u] && arr[v]) {         ind = i;       }       merge(u, v);     }     for (int i = 0; i < k; i++) {       cout << e[ind].first <<    ;     }     return 0;   }   