/// no time to waste
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned ll
#define ld long double
#define eb emplace_back
#define ef emplace_front
#define pii pair <int, int>
#define pli pair <ll, int>
#define pll pair <ll, ll>
#define pci pair <char, int>
#define pil pair <int, ll>
#define pic pair <int, char>
#define pib pair <int, bool>
#define pbi pair <bool, int>
#define pcc pair <char, char>
#define fi first
#define se second
#define all(ac) ac.begin(), ac.end()
#define MASK(x) (1 << (x))
#define ub(i, j) (((i) >> (j)) & 1)
#define FBIT(x) (MASK(x) - 1)
#define FLIP(x, y) (FBIT(x) ^ (y))
#define bit_count(x) (int) (__builtin_popcount(x))
#define bit_countll(x) (int) (__builtin_popcountll(x))
#define ii make_pair
#define int128 __int128_t
#define SZ(x) ((int) x.size())
#define UNIQUE(IV) (sort(all(IV)), IV.erase(unique(all(IV)), IV.end()))
#define multi 0
const int MX = 2e5 + 5;
int n, m, Q;
int a[MX];
int high[MX];
int par[MX][19];
int lchild[MX], rchild[MX];
int ans[MX], w[MX];
struct edge {
int u, v, w;
edge(int u = 0, int v = 0, int w = 0): u(u), v(v), w(w) {}
bool operator <(const edge &other) const {
return w > other.w;
}
} e[MX];
vector <edge> Qr[MX];
int lab[MX];
int tin[MX], tout[MX], A[MX];
int find(int u) {
return lab[u] < 0 ? u : lab[u] = find(lab[u]);
}
void DFS(int u) {
static int timer = 0;
tin[u] = ++timer;
A[timer] = u;
for(int i = 1; i < 19; i++) par[u][i] = par[par[u][i - 1]][i - 1];
int v1 = lchild[u];
int v2 = rchild[u];
if(v1) {
par[v1][0] = par[v2][0] = u;
high[v1] = high[v2] = high[u] + 1;
DFS(v1);
DFS(v2);
}
tout[u] = timer;
return;
}
int LG(int x) {
return !x ? -1 : __lg(x);
}
int Jump(int x, int lim) {
for(int i = LG(high[x]); i >= 0; i--) if(high[x] > MASK(i)) {
if(w[par[x][i]] >= lim) {
x = par[x][i];
}
}
return x;
}
bool sameCC(int x, int y) {
return find(x) == find(y);
}
struct BIT {
int n;
vector <int> bit;
BIT(int n = 0): n(n), bit(n + 1, 0) {}
void update(int x, int w) {
for(; x <= n; x += x&-x) bit[x] += w;
return;
}
int get(int x) {
int res = 0;
for(; x > 0; x &= x - 1) res += bit[x];
return res;
}
} bit;
void solve() {
cin >> n >> m >> Q;
for(int i = 1; i <= m; i++) {
int u, v, w; cin >> u >> v >> w;
e[i] = edge(u, v, w);
}
vector <int> rv;
for(int i = 1; i <= n; i++) cin >> a[i], rv.eb(a[i]);
auto get_rank = [&] (int x) -> int {
return upper_bound(all(rv), x) - rv.begin();
};
sort(e + 1, e + m + 1);
memset(lab, -1, sizeof lab);
int vers = n;
for(int i = 1; i <= m; i++) if(!sameCC(e[i].u, e[i].v)) {
vers++;
w[vers] = e[i].w;
lchild[vers] = find(e[i].u);
rchild[vers] = find(e[i].v);
lab[find(e[i].u)] = lab[find(e[i].v)] = vers;
}
for(int i = 1; i <= n; i++) {
int u = find(i);
if(!high[u]) {
high[u] = 1;
DFS(u);
}
}
for(int i = 1; i <= Q; i++) {
int v, h, x; cin >> v >> h >> x;
v = Jump(v, h);
if(tin[v] > 1) Qr[tin[v] - 1].eb(x, -1, i);
Qr[tout[v]].eb(x, 1, i);
rv.eb(x);
}
UNIQUE(rv);
bit = BIT(SZ(rv));
for(int i = 1; i <= vers; i++) {
int u = A[i];
if(u <= n) bit.update(get_rank(a[u]), 1);
for(edge &x : Qr[i]) ans[x.w] += bit.get(get_rank(x.u)) * x.v;
}
for(int i = 1; i <= Q; i++) cout << ans[i] << '\n';
return;
}
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
#define task "tet"
if(fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int testcase = multi == 2 ? 1e9 : 1; if(multi == 1) cin >> testcase;
while(testcase--) solve();
return 0;
}
Ly8vIG5vIHRpbWUgdG8gd2FzdGUKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxsCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBlZiBlbXBsYWNlX2Zyb250CiNkZWZpbmUgcGlpIHBhaXIgPGludCwgaW50PgojZGVmaW5lIHBsaSBwYWlyIDxsbCwgaW50PgojZGVmaW5lIHBsbCBwYWlyIDxsbCwgbGw+CiNkZWZpbmUgcGNpIHBhaXIgPGNoYXIsIGludD4KI2RlZmluZSBwaWwgcGFpciA8aW50LCBsbD4KI2RlZmluZSBwaWMgcGFpciA8aW50LCBjaGFyPgojZGVmaW5lIHBpYiBwYWlyIDxpbnQsIGJvb2w+CiNkZWZpbmUgcGJpIHBhaXIgPGJvb2wsIGludD4KI2RlZmluZSBwY2MgcGFpciA8Y2hhciwgY2hhcj4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGFsbChhYykgYWMuYmVnaW4oKSwgYWMuZW5kKCkKI2RlZmluZSBNQVNLKHgpICgxIDw8ICh4KSkKI2RlZmluZSB1YihpLCBqKSAoKChpKSA+PiAoaikpICYgMSkKI2RlZmluZSBGQklUKHgpIChNQVNLKHgpIC0gMSkKI2RlZmluZSBGTElQKHgsIHkpIChGQklUKHgpIF4gKHkpKQojZGVmaW5lIGJpdF9jb3VudCh4KSAoaW50KSAoX19idWlsdGluX3BvcGNvdW50KHgpKQojZGVmaW5lIGJpdF9jb3VudGxsKHgpIChpbnQpIChfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkKI2RlZmluZSBpaSBtYWtlX3BhaXIKI2RlZmluZSBpbnQxMjggX19pbnQxMjhfdAojZGVmaW5lIFNaKHgpICgoaW50KSB4LnNpemUoKSkKI2RlZmluZSBVTklRVUUoSVYpIChzb3J0KGFsbChJVikpLCBJVi5lcmFzZSh1bmlxdWUoYWxsKElWKSksIElWLmVuZCgpKSkKI2RlZmluZSBtdWx0aSAwCgpjb25zdCBpbnQgTVggPSAyZTUgKyA1OwppbnQgbiwgbSwgUTsKaW50IGFbTVhdOwppbnQgaGlnaFtNWF07CmludCBwYXJbTVhdWzE5XTsKaW50IGxjaGlsZFtNWF0sIHJjaGlsZFtNWF07CmludCBhbnNbTVhdLCB3W01YXTsKCnN0cnVjdCBlZGdlIHsKICAgIGludCB1LCB2LCB3OwogICAgZWRnZShpbnQgdSA9IDAsIGludCB2ID0gMCwgaW50IHcgPSAwKTogdSh1KSwgdih2KSwgdyh3KSB7fQoKICAgIGJvb2wgb3BlcmF0b3IgPChjb25zdCBlZGdlICZvdGhlcikgY29uc3QgewogICAgICAgIHJldHVybiB3ID4gb3RoZXIudzsKICAgIH0KfSBlW01YXTsKCnZlY3RvciA8ZWRnZT4gUXJbTVhdOwoKaW50IGxhYltNWF07CmludCB0aW5bTVhdLCB0b3V0W01YXSwgQVtNWF07CgppbnQgZmluZChpbnQgdSkgewogICAgcmV0dXJuIGxhYlt1XSA8IDAgPyB1IDogbGFiW3VdID0gZmluZChsYWJbdV0pOwp9Cgp2b2lkIERGUyhpbnQgdSkgewogICAgc3RhdGljIGludCB0aW1lciA9IDA7CiAgICB0aW5bdV0gPSArK3RpbWVyOwogICAgQVt0aW1lcl0gPSB1OwoKICAgIGZvcihpbnQgaSA9IDE7IGkgPCAxOTsgaSsrKSBwYXJbdV1baV0gPSBwYXJbcGFyW3VdW2kgLSAxXV1baSAtIDFdOwoKICAgIGludCB2MSA9IGxjaGlsZFt1XTsKICAgIGludCB2MiA9IHJjaGlsZFt1XTsKCiAgICBpZih2MSkgewogICAgICAgIHBhclt2MV1bMF0gPSBwYXJbdjJdWzBdID0gdTsKICAgICAgICBoaWdoW3YxXSA9IGhpZ2hbdjJdID0gaGlnaFt1XSArIDE7CgogICAgICAgIERGUyh2MSk7CiAgICAgICAgREZTKHYyKTsKICAgIH0KCiAgICB0b3V0W3VdID0gdGltZXI7CgogICAgcmV0dXJuOwp9CgppbnQgTEcoaW50IHgpIHsKICAgIHJldHVybiAheCA/IC0xIDogX19sZyh4KTsKfQoKaW50IEp1bXAoaW50IHgsIGludCBsaW0pIHsKICAgIGZvcihpbnQgaSA9IExHKGhpZ2hbeF0pOyBpID49IDA7IGktLSkgaWYoaGlnaFt4XSA+IE1BU0soaSkpIHsKICAgICAgICBpZih3W3Bhclt4XVtpXV0gPj0gbGltKSB7CiAgICAgICAgICAgIHggPSBwYXJbeF1baV07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB4Owp9Cgpib29sIHNhbWVDQyhpbnQgeCwgaW50IHkpIHsKICAgIHJldHVybiBmaW5kKHgpID09IGZpbmQoeSk7Cn0KCnN0cnVjdCBCSVQgewogICAgaW50IG47CiAgICB2ZWN0b3IgPGludD4gYml0OwoKICAgIEJJVChpbnQgbiA9IDApOiBuKG4pLCBiaXQobiArIDEsIDApIHt9CgogICAgdm9pZCB1cGRhdGUoaW50IHgsIGludCB3KSB7CiAgICAgICAgZm9yKDsgeCA8PSBuOyB4ICs9IHgmLXgpIGJpdFt4XSArPSB3OwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpbnQgZ2V0KGludCB4KSB7CiAgICAgICAgaW50IHJlcyA9IDA7CiAgICAgICAgZm9yKDsgeCA+IDA7IHggJj0geCAtIDEpIHJlcyArPSBiaXRbeF07CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KfSBiaXQ7Cgp2b2lkIHNvbHZlKCkgewogICAgY2luID4+IG4gPj4gbSA+PiBROwogICAgZm9yKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBpbnQgdSwgdiwgdzsgY2luID4+IHUgPj4gdiA+PiB3OwogICAgICAgIGVbaV0gPSBlZGdlKHUsIHYsIHcpOwogICAgfQoKICAgIHZlY3RvciA8aW50PiBydjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXSwgcnYuZWIoYVtpXSk7CgogICAgYXV0byBnZXRfcmFuayA9IFsmXSAoaW50IHgpIC0+IGludCB7CiAgICAgICAgcmV0dXJuIHVwcGVyX2JvdW5kKGFsbChydiksIHgpIC0gcnYuYmVnaW4oKTsKICAgIH07CgogICAgc29ydChlICsgMSwgZSArIG0gKyAxKTsKICAgIG1lbXNldChsYWIsIC0xLCBzaXplb2YgbGFiKTsKCiAgICBpbnQgdmVycyA9IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG07IGkrKykgaWYoIXNhbWVDQyhlW2ldLnUsIGVbaV0udikpIHsKICAgICAgICB2ZXJzKys7CiAgICAgICAgd1t2ZXJzXSA9IGVbaV0udzsKCiAgICAgICAgbGNoaWxkW3ZlcnNdID0gZmluZChlW2ldLnUpOwogICAgICAgIHJjaGlsZFt2ZXJzXSA9IGZpbmQoZVtpXS52KTsKCiAgICAgICAgbGFiW2ZpbmQoZVtpXS51KV0gPSBsYWJbZmluZChlW2ldLnYpXSA9IHZlcnM7CiAgICB9CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBpbnQgdSA9IGZpbmQoaSk7CiAgICAgICAgaWYoIWhpZ2hbdV0pIHsKICAgICAgICAgICAgaGlnaFt1XSA9IDE7CiAgICAgICAgICAgIERGUyh1KTsKICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBROyBpKyspIHsKICAgICAgICBpbnQgdiwgaCwgeDsgY2luID4+IHYgPj4gaCA+PiB4OwogICAgICAgIHYgPSBKdW1wKHYsIGgpOwoKICAgICAgICBpZih0aW5bdl0gPiAxKSBRclt0aW5bdl0gLSAxXS5lYih4LCAtMSwgaSk7CiAgICAgICAgUXJbdG91dFt2XV0uZWIoeCwgMSwgaSk7CgogICAgICAgIHJ2LmViKHgpOwogICAgfQoKICAgIFVOSVFVRShydik7CiAgICBiaXQgPSBCSVQoU1oocnYpKTsKCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IHZlcnM7IGkrKykgewogICAgICAgIGludCB1ID0gQVtpXTsKICAgICAgICBpZih1IDw9IG4pIGJpdC51cGRhdGUoZ2V0X3JhbmsoYVt1XSksIDEpOwoKICAgICAgICBmb3IoZWRnZSAmeCA6IFFyW2ldKSBhbnNbeC53XSArPSBiaXQuZ2V0KGdldF9yYW5rKHgudSkpICogeC52OwogICAgfQoKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gUTsgaSsrKSBjb3V0IDw8IGFuc1tpXSA8PCAnXG4nOwoKICAgIHJldHVybjsKfQoKaW50MzJfdCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKSwgY291dC50aWUoMCk7CiAgICAjZGVmaW5lIHRhc2sgInRldCIKICAgIGlmKGZvcGVuKHRhc2siLmlucCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKHRhc2siLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGludCB0ZXN0Y2FzZSA9IG11bHRpID09IDIgPyAxZTkgOiAxOyBpZihtdWx0aSA9PSAxKSBjaW4gPj4gdGVzdGNhc2U7CiAgICB3aGlsZSh0ZXN0Y2FzZS0tKSBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K