#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("usaco_Feb_timeline.in", "r", stdin);
freopen("usaco_Feb_timeline.out", "w", stdout);
int N, M, C;
cin >> N >> M >> C;
vector<long long> T(N + 1);
for (int i = 1; i <= N; i++) {
cin >> T[i];
}
vector<vector<pair<int, int>>> G(N + 1);
vector<int> D(N + 1, 0);
for (int i = 0; i < C; i++) {
int a, b, x;
cin >> a >> b >> x;
G[a].push_back({b, x});
D[b]++;
}
queue<int> Q;
for (int i = 1; i <= N; i++) {
if (D[i] == 0) {
Q.push(i);
}
}
while (!Q.empty()) {
int u = Q.front();
Q.pop();
for (auto &e : G[u]) {
int v = e.first;
int w = e.second;
if (T[u] + w > T[v]) {
T[v] = T[u] + w;
}
D[v]--;
if (D[v] == 0) {
Q.push(v);
}
}
}
for (int i = 1; i <= N; i++) {
cout << T[i] << endl;
}
return 0;
}