#include <bits/stdc++.h>
 
#define ll long long 
#define el cout << '\n'
#define ii pair<ll, ll>
#define fi first
#define se second
 
using namespace std;
 
const int maxn = 2e5;
const ll INF = 1e18;
 
struct Node
{
    int top, source;
    ll dist;
 
    Node(int top = 0, int source = 0, ll dist = 0) :
        top(top), source(source), dist(dist) {};
    bool operator < (const Node &other) const
    {
        return dist > other.dist || (dist == other.dist && source > other.source);
    }
};
 
int n, m, k;
vector<ii> adj[maxn + 10];
ii ans[maxn + 10], d[maxn + 10];
int p[maxn + 10];
priority_queue<Node> pq;
 
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    if (fopen("FPAIR.INP", "r"))
    {
        freopen("FPAIR.INP", "r", stdin);
        freopen("FPAIR.OUT", "w", stdout);
    }
 
    cin >> n >> m >> k;
    for (int i = 1; i <= n + k; i++)
    {
        d[i] = {INF, INF};
        ans[i] = {INF, INF};
    }
    for (int i = 1; i <= k; i++)
    {
        cin >> p[i];
        adj[p[i]].push_back({n + i, 0});
        adj[n + i].push_back({p[i], 0});
        pq.push(Node(n + i, n + i, 0));
        d[n + i] = {0, n + i};
    }
 
    // Initialize sources and handle same location
 
    for (int i = 1; i <= m; i++)
    {
        int x, y;
        ll w;
        cin >> x >> y >> w;
        adj[x].push_back({y, w});
        adj[y].push_back({x, w});
    }
 
    while (pq.size())
    {
        Node t = pq.top();
        pq.pop();
        int top = t.top;
        ll dist = t.dist;
        int source = t.source;
 
        if (ii(dist, source) != d[top])
            continue;
 
        for (ii pr : adj[top])
        {
            int next_top = pr.fi;
            ll w = pr.se;
            ll new_dist = dist + w;
 
            if (d[next_top].se != INF && d[next_top].se != source)
            {
                ll total_dist = new_dist + d[next_top].fi;
                int other_source = d[next_top].se;
                ans[source] = min(ans[source], {total_dist, other_source});
                ans[other_source] = min(ans[other_source], {total_dist, source});
            }
 
            if (d[next_top] > ii(new_dist, source))
            {
                d[next_top] = ii(new_dist, source);
                pq.push(Node(next_top, source, new_dist));
            }
        }
    }
 
    for (int i = 1; i <= k; i++)
        cout << ans[i + n].se - n << ' ';
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBlbCBjb3V0IDw8ICdcbicKI2RlZmluZSBpaSBwYWlyPGxsLCBsbD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuID0gMmU1Owpjb25zdCBsbCBJTkYgPSAxZTE4OwoKc3RydWN0IE5vZGUKewogICAgaW50IHRvcCwgc291cmNlOwogICAgbGwgZGlzdDsKCiAgICBOb2RlKGludCB0b3AgPSAwLCBpbnQgc291cmNlID0gMCwgbGwgZGlzdCA9IDApIDoKICAgICAgICB0b3AodG9wKSwgc291cmNlKHNvdXJjZSksIGRpc3QoZGlzdCkge307CiAgICBib29sIG9wZXJhdG9yIDwgKGNvbnN0IE5vZGUgJm90aGVyKSBjb25zdAogICAgewogICAgICAgIHJldHVybiBkaXN0ID4gb3RoZXIuZGlzdCB8fCAoZGlzdCA9PSBvdGhlci5kaXN0ICYmIHNvdXJjZSA+IG90aGVyLnNvdXJjZSk7CiAgICB9Cn07CgppbnQgbiwgbSwgazsKdmVjdG9yPGlpPiBhZGpbbWF4biArIDEwXTsKaWkgYW5zW21heG4gKyAxMF0sIGRbbWF4biArIDEwXTsKaW50IHBbbWF4biArIDEwXTsKcHJpb3JpdHlfcXVldWU8Tm9kZT4gcHE7CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaWYgKGZvcGVuKCJGUEFJUi5JTlAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oIkZQQUlSLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIkZQQUlSLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBjaW4gPj4gbiA+PiBtID4+IGs7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuICsgazsgaSsrKQogICAgewogICAgICAgIGRbaV0gPSB7SU5GLCBJTkZ9OwogICAgICAgIGFuc1tpXSA9IHtJTkYsIElORn07CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBrOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IHBbaV07CiAgICAgICAgYWRqW3BbaV1dLnB1c2hfYmFjayh7biArIGksIDB9KTsKICAgICAgICBhZGpbbiArIGldLnB1c2hfYmFjayh7cFtpXSwgMH0pOwogICAgICAgIHBxLnB1c2goTm9kZShuICsgaSwgbiArIGksIDApKTsKICAgICAgICBkW24gKyBpXSA9IHswLCBuICsgaX07CiAgICB9CiAgICAKICAgIC8vIEluaXRpYWxpemUgc291cmNlcyBhbmQgaGFuZGxlIHNhbWUgbG9jYXRpb24KICAgIAogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgaSsrKQogICAgewogICAgICAgIGludCB4LCB5OwogICAgICAgIGxsIHc7CiAgICAgICAgY2luID4+IHggPj4geSA+PiB3OwogICAgICAgIGFkalt4XS5wdXNoX2JhY2soe3ksIHd9KTsKICAgICAgICBhZGpbeV0ucHVzaF9iYWNrKHt4LCB3fSk7CiAgICB9CiAgICAKICAgIHdoaWxlIChwcS5zaXplKCkpCiAgICB7CiAgICAgICAgTm9kZSB0ID0gcHEudG9wKCk7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICAgaW50IHRvcCA9IHQudG9wOwogICAgICAgIGxsIGRpc3QgPSB0LmRpc3Q7CiAgICAgICAgaW50IHNvdXJjZSA9IHQuc291cmNlOwogICAgICAgIAogICAgICAgIGlmIChpaShkaXN0LCBzb3VyY2UpICE9IGRbdG9wXSkKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgCiAgICAgICAgZm9yIChpaSBwciA6IGFkalt0b3BdKQogICAgICAgIHsKICAgICAgICAgICAgaW50IG5leHRfdG9wID0gcHIuZmk7CiAgICAgICAgICAgIGxsIHcgPSBwci5zZTsKICAgICAgICAgICAgbGwgbmV3X2Rpc3QgPSBkaXN0ICsgdzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChkW25leHRfdG9wXS5zZSAhPSBJTkYgJiYgZFtuZXh0X3RvcF0uc2UgIT0gc291cmNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBsbCB0b3RhbF9kaXN0ID0gbmV3X2Rpc3QgKyBkW25leHRfdG9wXS5maTsKICAgICAgICAgICAgICAgIGludCBvdGhlcl9zb3VyY2UgPSBkW25leHRfdG9wXS5zZTsKICAgICAgICAgICAgICAgIGFuc1tzb3VyY2VdID0gbWluKGFuc1tzb3VyY2VdLCB7dG90YWxfZGlzdCwgb3RoZXJfc291cmNlfSk7CiAgICAgICAgICAgICAgICBhbnNbb3RoZXJfc291cmNlXSA9IG1pbihhbnNbb3RoZXJfc291cmNlXSwge3RvdGFsX2Rpc3QsIHNvdXJjZX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoZFtuZXh0X3RvcF0gPiBpaShuZXdfZGlzdCwgc291cmNlKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZFtuZXh0X3RvcF0gPSBpaShuZXdfZGlzdCwgc291cmNlKTsKICAgICAgICAgICAgICAgIHBxLnB1c2goTm9kZShuZXh0X3RvcCwgc291cmNlLCBuZXdfZGlzdCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBrOyBpKyspCiAgICAgICAgY291dCA8PCBhbnNbaSArIG5dLnNlIC0gbiA8PCAnICc7Cn0=