#include <iostream>
#include <vector>
#include <queue>
using namespace std;
pair<vector<int>, vector<int>>
bfsMaxFive(int n, const vector<vector<int>>& g, const vector<int>& val) {
vector<int> dist(n+1, -1), five(n+1, -1);
queue<int> q;
dist[1] = 0;
five[1] = (val[1] == 5 ? 1 : 0);
q.push(1);
while (!q.empty()) {
int v = q.front(); q.pop();
for (int u : g[v]) {
int add = (val[u] == 5 ? 1 : 0);
if (dist[u] == -1) {
dist[u] = dist[v] + 1;
five[u] = five[v] + add;
q.push(u);
} else if (dist[u] == dist[v] + 1) {
if (five[v] + add > five[u]) five[u] = five[v] + add;
}
}
}
return {dist, five};
}
int main() {
int n, m;
cin >> n >> m;
vector<int> val(n+1);
for (int i = 1; i <= n; ++i) cin >> val[i];
vector<vector<int>> g(n+1);
for (int i = 0; i < m; ++i) {
int u, v; cin >> u >> v;
g[u].push_back(v);
g[v].push_back(u);
}
auto [dist, five] = bfsMaxFive(n, g, val);
int q;
cin >> q; // number of target queries
while (q--) {
int t; cin >> t; // target node
cout << dist[t] << " " << five[t] << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpwYWlyPHZlY3RvcjxpbnQ+LCB2ZWN0b3I8aW50Pj4KYmZzTWF4Rml2ZShpbnQgbiwgY29uc3QgdmVjdG9yPHZlY3RvcjxpbnQ+PiYgZywgY29uc3QgdmVjdG9yPGludD4mIHZhbCkgewogICAgdmVjdG9yPGludD4gZGlzdChuKzEsIC0xKSwgZml2ZShuKzEsIC0xKTsKICAgIHF1ZXVlPGludD4gcTsKICAgIGRpc3RbMV0gPSAwOwogICAgZml2ZVsxXSA9ICh2YWxbMV0gPT0gNSA/IDEgOiAwKTsKICAgIHEucHVzaCgxKTsKCiAgICB3aGlsZSAoIXEuZW1wdHkoKSkgewogICAgICAgIGludCB2ID0gcS5mcm9udCgpOyBxLnBvcCgpOwogICAgICAgIGZvciAoaW50IHUgOiBnW3ZdKSB7CiAgICAgICAgICAgIGludCBhZGQgPSAodmFsW3VdID09IDUgPyAxIDogMCk7CiAgICAgICAgICAgIGlmIChkaXN0W3VdID09IC0xKSB7CiAgICAgICAgICAgICAgICBkaXN0W3VdID0gZGlzdFt2XSArIDE7CiAgICAgICAgICAgICAgICBmaXZlW3VdID0gZml2ZVt2XSArIGFkZDsKICAgICAgICAgICAgICAgIHEucHVzaCh1KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChkaXN0W3VdID09IGRpc3Rbdl0gKyAxKSB7CiAgICAgICAgICAgICAgICBpZiAoZml2ZVt2XSArIGFkZCA+IGZpdmVbdV0pIGZpdmVbdV0gPSBmaXZlW3ZdICsgYWRkOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHtkaXN0LCBmaXZlfTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgbTsKICAgIGNpbiA+PiBuID4+IG07CgogICAgdmVjdG9yPGludD4gdmFsKG4rMSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIGNpbiA+PiB2YWxbaV07CgogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBnKG4rMSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07ICsraSkgewogICAgICAgIGludCB1LCB2OyBjaW4gPj4gdSA+PiB2OwogICAgICAgIGdbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGdbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIGF1dG8gW2Rpc3QsIGZpdmVdID0gYmZzTWF4Rml2ZShuLCBnLCB2YWwpOwoKICAgIGludCBxOyAKICAgIGNpbiA+PiBxOyAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIHRhcmdldCBxdWVyaWVzCiAgICB3aGlsZSAocS0tKSB7CiAgICAgICAgaW50IHQ7IGNpbiA+PiB0OyAgICAgIC8vIHRhcmdldCBub2RlCiAgICAgICAgY291dCA8PCBkaXN0W3RdIDw8ICIgIiA8PCBmaXZlW3RdIDw8ICJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=