#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9+7;
const long long INFLL = 1e18+7;
const int MAXN = 1e5+7;
int n,m,k;
vector<int> pos[57];
vector<pair<int,long long>> g[MAXN];
long long Dist[57][MAXN];
bool Check[MAXN];
void Dijkstra(int k)
{
fill(Dist[k]+1,Dist[k]+n+1,INFLL);
memset(Check,0,sizeof Check);
priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<pair<long long, int>>> pq;
for (int x : pos[k])
{
Dist[k][x] = 0;
pq.emplace(0,x);
}
while (!pq.empty())
{
pair<long long, int> tp = pq.top();
pq.pop();
int u = tp.second;
if (Check[u]) continue;
Check[u] = 1;
for (pair<int,long long> x : g[u])
{
if (Dist[k][x.first] > Dist[k][u] + x.second)
{
Dist[k][x.first] = Dist[k][u] + x.second;
pq.emplace(Dist[k][x.first],x.first);
}
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m >> k;
for (int i = 1; i <= n; i++)
{
int ingre;
cin >> ingre;
pos[ingre].push_back(i);
}
for (int i = 1; i <= m; i++)
{
int u,v;
long long w;
cin >> u >> v >> w;
g[u].emplace_back(v,w);
g[v].emplace_back(u,w);
}
for (int i = 1; i <= k; i++)
Dijkstra(i);
// for (int i = 1; i <= k; i++)
// {
// for (int j = 1; j <= n; j++)
// cout << Dist[i][j] << '\t';
// cout << '\n';
// }
long long res = INFLL;
int pos = 0;
for (int i = 1; i <= n; i++)
{
long long tmp = 0;
for (int j = 1; j <= k; j++)
{
if (Dist[j][i] == INFLL)
{
tmp = INFLL;
break;
}
tmp+=Dist[j][i];
}
if (res > tmp)
{
pos = i;
res = tmp;
}
}
cout << pos;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IElORiA9IDFlOSs3Owpjb25zdCBsb25nIGxvbmcgSU5GTEwgPSAxZTE4Kzc7CmNvbnN0IGludCBNQVhOID0gMWU1Kzc7CgppbnQgbixtLGs7CnZlY3RvcjxpbnQ+IHBvc1s1N107CnZlY3RvcjxwYWlyPGludCxsb25nIGxvbmc+PiBnW01BWE5dOwpsb25nIGxvbmcgRGlzdFs1N11bTUFYTl07CmJvb2wgQ2hlY2tbTUFYTl07Cgp2b2lkIERpamtzdHJhKGludCBrKQp7CglmaWxsKERpc3Rba10rMSxEaXN0W2tdK24rMSxJTkZMTCk7CgltZW1zZXQoQ2hlY2ssMCxzaXplb2YgQ2hlY2spOwoJcHJpb3JpdHlfcXVldWU8cGFpcjxsb25nIGxvbmcsIGludD4sIHZlY3RvcjxwYWlyPGxvbmcgbG9uZywgaW50Pj4sIGdyZWF0ZXI8cGFpcjxsb25nIGxvbmcsIGludD4+PiBwcTsKCWZvciAoaW50IHggOiBwb3Nba10pCgl7CgkJRGlzdFtrXVt4XSA9IDA7CgkJcHEuZW1wbGFjZSgwLHgpOwoJfQoKCXdoaWxlICghcHEuZW1wdHkoKSkKCXsKCQlwYWlyPGxvbmcgbG9uZywgaW50PiB0cCA9IHBxLnRvcCgpOwoJCXBxLnBvcCgpOwoJCWludCB1ID0gdHAuc2Vjb25kOwoJCWlmIChDaGVja1t1XSkgY29udGludWU7CgkJQ2hlY2tbdV0gPSAxOwoKCQlmb3IgKHBhaXI8aW50LGxvbmcgbG9uZz4geCA6IGdbdV0pCgkJewoJCQlpZiAoRGlzdFtrXVt4LmZpcnN0XSA+IERpc3Rba11bdV0gKyB4LnNlY29uZCkKCQkJewoJCQkJRGlzdFtrXVt4LmZpcnN0XSA9IERpc3Rba11bdV0gKyB4LnNlY29uZDsKCQkJCXBxLmVtcGxhY2UoRGlzdFtrXVt4LmZpcnN0XSx4LmZpcnN0KTsKCQkJfQoJCX0KCX0KfQoKaW50IG1haW4oKQp7CiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgY2luLnRpZShudWxscHRyKTsKICAKCWNpbiA+PiBuID4+IG0gPj4gazsKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKCXsKCQlpbnQgaW5ncmU7CgkJY2luID4+IGluZ3JlOwoJCXBvc1tpbmdyZV0ucHVzaF9iYWNrKGkpOwoJfQoKCWZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykKCXsKCQlpbnQgdSx2OwoJCWxvbmcgbG9uZyB3OwoJCWNpbiA+PiB1ID4+IHYgPj4gdzsKCQlnW3VdLmVtcGxhY2VfYmFjayh2LHcpOwoJCWdbdl0uZW1wbGFjZV9iYWNrKHUsdyk7Cgl9CgoJZm9yIChpbnQgaSA9IDE7IGkgPD0gazsgaSsrKQoJCURpamtzdHJhKGkpOwoKCS8vIGZvciAoaW50IGkgPSAxOyBpIDw9IGs7IGkrKykKCS8vIHsKCS8vIAlmb3IgKGludCBqID0gMTsgaiA8PSBuOyBqKyspCgkvLyAJCWNvdXQgPDwgRGlzdFtpXVtqXSA8PCAnXHQnOwoJLy8gCWNvdXQgPDwgJ1xuJzsKCS8vIH0KCglsb25nIGxvbmcgcmVzID0gSU5GTEw7CglpbnQgcG9zID0gMDsKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKCXsKCQlsb25nIGxvbmcgdG1wID0gMDsKCQlmb3IgKGludCBqID0gMTsgaiA8PSBrOyBqKyspCgkJewoJCQlpZiAoRGlzdFtqXVtpXSA9PSBJTkZMTCkKCQkJewoJCQkJdG1wID0gSU5GTEw7CgkJCQlicmVhazsKCQkJfQoJCQl0bXArPURpc3Rbal1baV07CgkJfQoJCWlmIChyZXMgPiB0bXApCgkJewoJCQlwb3MgPSBpOwoJCQlyZXMgPSB0bXA7CgkJfQoJfQoKCWNvdXQgPDwgcG9zOwoJCgkKICAKICByZXR1cm4gMDsKfQ==