#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9+7;
const int MAXN = 100005;
int n, m, Q;
vector<pair<int, int>> adj[MAXN]; // adjacency list: node -> (neighbor, weight)
int s[MAXN], c[MAXN]; // diện tích và chi phí
int dist[MAXN]; // lưu khoảng cách từ node 1
// Dijkstra
void dijkstra(int start) {
fill(dist, dist + n + 1, INF);
priority_queue<pair<int,int>, vector<pair<int,int>>, greater<>> pq;
dist[start] = 0;
pq.push({0, start});
while (!pq.empty()) {
auto [d, u] = pq.top(); pq.pop();
if (d > dist[u]) continue;
for (auto [v, w] : adj[u]) {
if (dist[v] > d + w) {
dist[v] = d + w;
pq.push({dist[v], v});
}
}
}
}
struct Hall {
int area, cost, dist;
};
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m >> Q;
for (int i = 1; i <= n; ++i) {
cin >> s[i] >> c[i];
}
for (int i = 0; i < m; ++i) {
int u, v, w; cin >> u >> v >> w;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
}
dijkstra(1);
// Tiền xử lý danh sách hội trường hợp lệ
vector<Hall> halls;
set<int> areaSet;
for (int i = 1; i <= n; ++i) {
if (s[i] > 0) {
halls.push_back({s[i], c[i], dist[i]});
areaSet.insert(s[i]);
}
}
// Nén tọa độ diện tích
vector<int> areas(areaSet.begin(), areaSet.end());
int A = areas.size();
// map area -> index
unordered_map<int, int> areaIndex;
for (int i = 0; i < A; ++i) {
areaIndex[areas[i]] = i;
}
// Với mỗi diện tích đã nén, lưu danh sách (dist, cost), sắp xếp theo dist để binary search
vector<vector<pair<int,int>>> areaHalls(A); // areaHalls[i] = list of (dist, cost)
for (auto &h : halls) {
int idx = areaIndex[h.area];
areaHalls[idx].push_back({h.dist, h.cost});
}
// Sort theo dist tăng dần, để binary search theo r
for (int i = 0; i < A; ++i) {
sort(areaHalls[i].begin(), areaHalls[i].end());
}
// Xử lý từng truy vấn
while (Q--) {
int L, H, r; cin >> L >> H >> r;
// tìm index trái và phải trong diện tích
int l = lower_bound(areas.begin(), areas.end(), L) - areas.begin();
int h = upper_bound(areas.begin(), areas.end(), H) - areas.begin() - 1;
int res = INF;
for (int i = l; i <= h; ++i) {
// tìm cost nhỏ nhất với dist <= r
auto &vec = areaHalls[i];
auto it = upper_bound(vec.begin(), vec.end(), make_pair(r, INF));
for (auto itr = vec.begin(); itr != it; ++itr) {
res = min(res, itr->second);
}
}
cout << (res == INF ? -1 : res) << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgSU5GID0gMWU5Kzc7CmNvbnN0IGludCBNQVhOID0gMTAwMDA1OwoKaW50IG4sIG0sIFE7CnZlY3RvcjxwYWlyPGludCwgaW50Pj4gYWRqW01BWE5dOyAvLyBhZGphY2VuY3kgbGlzdDogbm9kZSAtPiAobmVpZ2hib3IsIHdlaWdodCkKaW50IHNbTUFYTl0sIGNbTUFYTl07IC8vIGRp4buHbiB0w61jaCB2w6AgY2hpIHBow60KaW50IGRpc3RbTUFYTl07IC8vIGzGsHUga2hv4bqjbmcgY8OhY2ggdOG7qyBub2RlIDEKCi8vIERpamtzdHJhCnZvaWQgZGlqa3N0cmEoaW50IHN0YXJ0KSB7CiAgICBmaWxsKGRpc3QsIGRpc3QgKyBuICsgMSwgSU5GKTsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8aW50LGludD4sIHZlY3RvcjxwYWlyPGludCxpbnQ+PiwgZ3JlYXRlcjw+PiBwcTsKICAgIGRpc3Rbc3RhcnRdID0gMDsKICAgIHBxLnB1c2goezAsIHN0YXJ0fSk7CiAgICAKICAgIHdoaWxlICghcHEuZW1wdHkoKSkgewogICAgICAgIGF1dG8gW2QsIHVdID0gcHEudG9wKCk7IHBxLnBvcCgpOwogICAgICAgIGlmIChkID4gZGlzdFt1XSkgY29udGludWU7CiAgICAgICAgZm9yIChhdXRvIFt2LCB3XSA6IGFkalt1XSkgewogICAgICAgICAgICBpZiAoZGlzdFt2XSA+IGQgKyB3KSB7CiAgICAgICAgICAgICAgICBkaXN0W3ZdID0gZCArIHc7CiAgICAgICAgICAgICAgICBwcS5wdXNoKHtkaXN0W3ZdLCB2fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCnN0cnVjdCBIYWxsIHsKICAgIGludCBhcmVhLCBjb3N0LCBkaXN0Owp9OwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOwoKICAgIGNpbiA+PiBuID4+IG0gPj4gUTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIGNpbiA+PiBzW2ldID4+IGNbaV07CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyArK2kpIHsKICAgICAgICBpbnQgdSwgdiwgdzsgY2luID4+IHUgPj4gdiA+PiB3OwogICAgICAgIGFkalt1XS5wdXNoX2JhY2soe3YsIHd9KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHt1LCB3fSk7CiAgICB9CgogICAgZGlqa3N0cmEoMSk7CgogICAgLy8gVGnhu4FuIHjhu60gbMO9IGRhbmggc8OhY2ggaOG7mWkgdHLGsOG7nW5nIGjhu6NwIGzhu4cKICAgIHZlY3RvcjxIYWxsPiBoYWxsczsKICAgIHNldDxpbnQ+IGFyZWFTZXQ7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgaWYgKHNbaV0gPiAwKSB7CiAgICAgICAgICAgIGhhbGxzLnB1c2hfYmFjayh7c1tpXSwgY1tpXSwgZGlzdFtpXX0pOwogICAgICAgICAgICBhcmVhU2V0Lmluc2VydChzW2ldKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gTsOpbiB04buNYSDEkeG7mSBkaeG7h24gdMOtY2gKICAgIHZlY3RvcjxpbnQ+IGFyZWFzKGFyZWFTZXQuYmVnaW4oKSwgYXJlYVNldC5lbmQoKSk7CiAgICBpbnQgQSA9IGFyZWFzLnNpemUoKTsKCiAgICAvLyBtYXAgYXJlYSAtPiBpbmRleAogICAgdW5vcmRlcmVkX21hcDxpbnQsIGludD4gYXJlYUluZGV4OwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBBOyArK2kpIHsKICAgICAgICBhcmVhSW5kZXhbYXJlYXNbaV1dID0gaTsKICAgIH0KCiAgICAvLyBW4bubaSBt4buXaSBkaeG7h24gdMOtY2ggxJHDoyBuw6luLCBsxrB1IGRhbmggc8OhY2ggKGRpc3QsIGNvc3QpLCBz4bqvcCB44bq/cCB0aGVvIGRpc3QgxJHhu4MgYmluYXJ5IHNlYXJjaAogICAgdmVjdG9yPHZlY3RvcjxwYWlyPGludCxpbnQ+Pj4gYXJlYUhhbGxzKEEpOyAvLyBhcmVhSGFsbHNbaV0gPSBsaXN0IG9mIChkaXN0LCBjb3N0KQoKICAgIGZvciAoYXV0byAmaCA6IGhhbGxzKSB7CiAgICAgICAgaW50IGlkeCA9IGFyZWFJbmRleFtoLmFyZWFdOwogICAgICAgIGFyZWFIYWxsc1tpZHhdLnB1c2hfYmFjayh7aC5kaXN0LCBoLmNvc3R9KTsKICAgIH0KCiAgICAvLyBTb3J0IHRoZW8gZGlzdCB0xINuZyBk4bqnbiwgxJHhu4MgYmluYXJ5IHNlYXJjaCB0aGVvIHIKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQTsgKytpKSB7CiAgICAgICAgc29ydChhcmVhSGFsbHNbaV0uYmVnaW4oKSwgYXJlYUhhbGxzW2ldLmVuZCgpKTsKICAgIH0KCiAgICAvLyBY4butIGzDvSB04burbmcgdHJ1eSB24bqlbgogICAgd2hpbGUgKFEtLSkgewogICAgICAgIGludCBMLCBILCByOyBjaW4gPj4gTCA+PiBIID4+IHI7CiAgICAgICAgLy8gdMOsbSBpbmRleCB0csOhaSB2w6AgcGjhuqNpIHRyb25nIGRp4buHbiB0w61jaAogICAgICAgIGludCBsID0gbG93ZXJfYm91bmQoYXJlYXMuYmVnaW4oKSwgYXJlYXMuZW5kKCksIEwpIC0gYXJlYXMuYmVnaW4oKTsKICAgICAgICBpbnQgaCA9IHVwcGVyX2JvdW5kKGFyZWFzLmJlZ2luKCksIGFyZWFzLmVuZCgpLCBIKSAtIGFyZWFzLmJlZ2luKCkgLSAxOwogICAgICAgIGludCByZXMgPSBJTkY7CiAgICAgICAgZm9yIChpbnQgaSA9IGw7IGkgPD0gaDsgKytpKSB7CiAgICAgICAgICAgIC8vIHTDrG0gY29zdCBuaOG7jyBuaOG6pXQgduG7m2kgZGlzdCA8PSByCiAgICAgICAgICAgIGF1dG8gJnZlYyA9IGFyZWFIYWxsc1tpXTsKICAgICAgICAgICAgYXV0byBpdCA9IHVwcGVyX2JvdW5kKHZlYy5iZWdpbigpLCB2ZWMuZW5kKCksIG1ha2VfcGFpcihyLCBJTkYpKTsKICAgICAgICAgICAgZm9yIChhdXRvIGl0ciA9IHZlYy5iZWdpbigpOyBpdHIgIT0gaXQ7ICsraXRyKSB7CiAgICAgICAgICAgICAgICByZXMgPSBtaW4ocmVzLCBpdHItPnNlY29uZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgKHJlcyA9PSBJTkYgPyAtMSA6IHJlcykgPDwgJ1xuJzsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=