/*
* Author : Apu Das Orgho
* Problem : The Monster's Dice (Medium Version)
* Created on: 27-09-2025
*/
#include<bits/stdc++.h>
#define iamspeed ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define endl '\n'
#define ll int
using namespace std;
const int N = 5e6 + 5;
const ll mod = 998244353;
string s, ss;
ll d, x, y, z, cnt, t, tt, cnt2, sum, ans, res, q, n, m, k, i, j;
vector<pair<ll,ll> > graph[N];
vector<ll> cst(N);
ll dijk(int sz, int src) {
priority_queue<pair<ll,ll> > pq;
pq.push({0, src});
vector<bool> vis(sz + 2, 0);
while (!pq.empty()) {
auto [cost,node] = pq.top();
pq.pop();
cost *= -1;
if (vis[node])continue;
cst[node] = cost;
vis[node] = true;
for (auto [child,wt]: graph[node]) {
pq.push({-cost - wt, child});
}
}
return -1;
}
int main() {
iamspeed
///freopen("input.txt","r",stdin);
///freopen("output.txt","w",stdout);
cin >> n >> m >> q;
set<ll> st;
int id = 1;
map<ll,ll> mp, mp2;
map<ll, bool> block;
vector<pair<ll,ll> > pr;
st.insert(1);
st.insert(n);
while (m--) {
cin >> x >> y >> z;
st.insert(x);
st.insert(y);
pr.push_back({x, y});
}
vector<ll> queries(q);
for (i = 0; i < q; i++) {
cin >> queries[i];
st.insert(queries[i]);
}
vector<ll> v2;
copy(st.begin(), st.end(), back_inserter(v2));
st.clear();
vector<pair<ll,ll> > v;
for (ll x: v2) {
for (i = 0; i <= 6; i++) {
if (!st.count(x + i) && x + i <= n) {
st.insert(x + i);
mp[x + i] = id++;
}
}
}
ll sz = id;
sort(v.begin(), v.end());
cst.assign(id + 5, -1);
for (i = 0; i <= id + 5; i++) {
graph[i].clear();
}
for (auto [xx,yy]: pr) {
xx = mp[xx], yy = mp[yy];
block[xx] = true;
///graph[xx].push_back({yy, 0});
}
for (auto [val,id]: mp) {
v.push_back({val, id});
}
for (i = 0; i < v.size(); i++) {
auto [ai,id] = v[i];
if (block.count(id))continue;
int ct = 0;
for (j = i + 1; j < v.size(); j++) {
auto [aj,nid] = v[j];
ll dist = (aj - ai) / 6 + ((aj - ai) % 6 != 0);
graph[nid].push_back({id, dist});
if (aj == v[j - 1].first + 1)ct++;
else ct = 1;
if (ct >= 6)break;
}
}
for (auto [xx,yy]: pr) {
xx = mp[xx], yy = mp[yy];
graph[yy].push_back({xx, 0});
}
dijk(sz, mp[n]);
for (int id = 0; id < queries.size(); id++) {
cout << cst[mp[queries[id]]] << endl;
}
return 0;
}
LyoKKiBBdXRob3IgICAgIDogQXB1IERhcyBPcmdobwogKiBQcm9ibGVtICAgOiBUaGUgTW9uc3RlcidzIERpY2UgKE1lZGl1bSBWZXJzaW9uKQogKiBDcmVhdGVkIG9uOiAyNy0wOS0yMDI1CiAqLwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGlhbXNwZWVkIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCk7CiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgbGwgaW50CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gNWU2ICsgNTsKY29uc3QgbGwgbW9kID0gOTk4MjQ0MzUzOwpzdHJpbmcgcywgc3M7CmxsIGQsIHgsIHksIHosIGNudCwgdCwgdHQsIGNudDIsIHN1bSwgYW5zLCByZXMsIHEsIG4sIG0sIGssIGksIGo7CnZlY3RvcjxwYWlyPGxsLGxsPiA+IGdyYXBoW05dOwp2ZWN0b3I8bGw+IGNzdChOKTsKbGwgZGlqayhpbnQgc3osIGludCBzcmMpIHsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsbGw+ID4gcHE7CiAgICBwcS5wdXNoKHswLCBzcmN9KTsKICAgIHZlY3Rvcjxib29sPiB2aXMoc3ogKyAyLCAwKTsKICAgIHdoaWxlICghcHEuZW1wdHkoKSkgewogICAgICAgIGF1dG8gW2Nvc3Qsbm9kZV0gPSBwcS50b3AoKTsKICAgICAgICBwcS5wb3AoKTsKICAgICAgICBjb3N0ICo9IC0xOwogICAgICAgIGlmICh2aXNbbm9kZV0pY29udGludWU7CiAgICAgICAgY3N0W25vZGVdID0gY29zdDsKICAgICAgICB2aXNbbm9kZV0gPSB0cnVlOwogICAgICAgIGZvciAoYXV0byBbY2hpbGQsd3RdOiBncmFwaFtub2RlXSkgewogICAgICAgICAgICBwcS5wdXNoKHstY29zdCAtIHd0LCBjaGlsZH0pOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAtMTsKfQoKaW50IG1haW4oKSB7CiAgICBpYW1zcGVlZAogICAgLy8vZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwogICAgLy8vZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiAgICBjaW4gPj4gbiA+PiBtID4+IHE7CiAgICBzZXQ8bGw+IHN0OwogICAgaW50IGlkID0gMTsKICAgIG1hcDxsbCxsbD4gbXAsIG1wMjsKICAgIG1hcDxsbCwgYm9vbD4gYmxvY2s7CiAgICB2ZWN0b3I8cGFpcjxsbCxsbD4gPiBwcjsKICAgIHN0Lmluc2VydCgxKTsKICAgIHN0Lmluc2VydChuKTsKICAgIHdoaWxlIChtLS0pIHsKICAgICAgICBjaW4gPj4geCA+PiB5ID4+IHo7CiAgICAgICAgc3QuaW5zZXJ0KHgpOwogICAgICAgIHN0Lmluc2VydCh5KTsKICAgICAgICBwci5wdXNoX2JhY2soe3gsIHl9KTsKICAgIH0KICAgIHZlY3RvcjxsbD4gcXVlcmllcyhxKTsKICAgIGZvciAoaSA9IDA7IGkgPCBxOyBpKyspIHsKICAgICAgICBjaW4gPj4gcXVlcmllc1tpXTsKICAgICAgICBzdC5pbnNlcnQocXVlcmllc1tpXSk7CiAgICB9CiAgICB2ZWN0b3I8bGw+IHYyOwogICAgY29weShzdC5iZWdpbigpLCBzdC5lbmQoKSwgYmFja19pbnNlcnRlcih2MikpOwogICAgc3QuY2xlYXIoKTsKICAgIHZlY3RvcjxwYWlyPGxsLGxsPiA+IHY7CiAgICBmb3IgKGxsIHg6IHYyKSB7CiAgICAgICAgZm9yIChpID0gMDsgaSA8PSA2OyBpKyspIHsKICAgICAgICAgICAgaWYgKCFzdC5jb3VudCh4ICsgaSkgJiYgeCArIGkgPD0gbikgewogICAgICAgICAgICAgICAgc3QuaW5zZXJ0KHggKyBpKTsKICAgICAgICAgICAgICAgIG1wW3ggKyBpXSA9IGlkKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBsbCBzeiA9IGlkOwogICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCkpOwogICAgY3N0LmFzc2lnbihpZCArIDUsIC0xKTsKICAgIGZvciAoaSA9IDA7IGkgPD0gaWQgKyA1OyBpKyspIHsKICAgICAgICBncmFwaFtpXS5jbGVhcigpOwogICAgfQogICAgZm9yIChhdXRvIFt4eCx5eV06IHByKSB7CiAgICAgICAgeHggPSBtcFt4eF0sIHl5ID0gbXBbeXldOwogICAgICAgIGJsb2NrW3h4XSA9IHRydWU7CiAgICAgICAgLy8vZ3JhcGhbeHhdLnB1c2hfYmFjayh7eXksIDB9KTsKICAgIH0KICAgIGZvciAoYXV0byBbdmFsLGlkXTogbXApIHsKICAgICAgICB2LnB1c2hfYmFjayh7dmFsLCBpZH0pOwogICAgfQogICAgZm9yIChpID0gMDsgaSA8IHYuc2l6ZSgpOyBpKyspIHsKICAgICAgICBhdXRvIFthaSxpZF0gPSB2W2ldOwogICAgICAgIGlmIChibG9jay5jb3VudChpZCkpY29udGludWU7CiAgICAgICAgaW50IGN0ID0gMDsKICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IHYuc2l6ZSgpOyBqKyspIHsKICAgICAgICAgICAgYXV0byBbYWosbmlkXSA9IHZbal07CiAgICAgICAgICAgIGxsIGRpc3QgPSAoYWogLSBhaSkgLyA2ICsgKChhaiAtIGFpKSAlIDYgIT0gMCk7CiAgICAgICAgICAgIGdyYXBoW25pZF0ucHVzaF9iYWNrKHtpZCwgZGlzdH0pOwogICAgICAgICAgICBpZiAoYWogPT0gdltqIC0gMV0uZmlyc3QgKyAxKWN0Kys7CiAgICAgICAgICAgIGVsc2UgY3QgPSAxOwogICAgICAgICAgICBpZiAoY3QgPj0gNilicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGF1dG8gW3h4LHl5XTogcHIpIHsKICAgICAgICB4eCA9IG1wW3h4XSwgeXkgPSBtcFt5eV07CiAgICAgICAgZ3JhcGhbeXldLnB1c2hfYmFjayh7eHgsIDB9KTsKICAgIH0KICAgIGRpamsoc3osIG1wW25dKTsKICAgIGZvciAoaW50IGlkID0gMDsgaWQgPCBxdWVyaWVzLnNpemUoKTsgaWQrKykgewogICAgICAgIGNvdXQgPDwgY3N0W21wW3F1ZXJpZXNbaWRdXV0gPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=