#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,e;
cin>>n>>e;
vector<int> g[n+1];
vector<int> val(n+1);
for(int i=1;i<=n;i++){
cin>>val[i];
}
for(int i=1;i<=e;i++){
int u;
int v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int s;
cin>>s;
queue<int> q;
q.push(s);
vector<int> level(n+1,-1);
level[s]=0;
vector<int> visited(n+1,0);
visited[s]=1;
vector<int> shortest(n+1,0);
shortest[s]=0;
vector<int> five_count(n+1,0);
if(val[s]==5){
five_count[s]=1;
}
while(!q.empty()){
int a = q.front();
q.pop();
for(auto it : g[a]){
if(!visited[it]){
q.push(it);
visited[it]=1;
shortest[it] = shortest[a]+1;
if(val[it]==5){
five_count[it] = five_count[a] + 1;
}
else{
five_count[it] = five_count[a];
}
}
else{
if(shortest[it]==shortest[a]+1){
if(val[it]==5){
five_count[it] = max(five_count[it],five_count[a]+1);
}else{
five_count[it] = max(five_count[it],five_count[a]);
}
}
}
}
}
for(int i=1;i<=n;i++){
if (visited[i] == 0) {
cout << -1 << " " << -1 << "\n";
} else {
cout << shortest[i] << " " << five_count[i] << "\n";
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CglpbnQgbixlOwoJY2luPj5uPj5lOwoJdmVjdG9yPGludD4gZ1tuKzFdOwoJdmVjdG9yPGludD4gdmFsKG4rMSk7Cglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJY2luPj52YWxbaV07CgkJCgl9CgoJZm9yKGludCBpPTE7aTw9ZTtpKyspewoJCWludCB1OwoJCWludCB2OwoJCWNpbj4+dT4+djsKCgkJZ1t1XS5wdXNoX2JhY2sodik7CgkJZ1t2XS5wdXNoX2JhY2sodSk7Cgl9CgoJaW50IHM7CgljaW4+PnM7CglxdWV1ZTxpbnQ+IHE7CglxLnB1c2gocyk7Cgl2ZWN0b3I8aW50PiBsZXZlbChuKzEsLTEpOwoJbGV2ZWxbc109MDsKCQoKCQoJdmVjdG9yPGludD4gdmlzaXRlZChuKzEsMCk7Cgl2aXNpdGVkW3NdPTE7CgkKCXZlY3RvcjxpbnQ+IHNob3J0ZXN0KG4rMSwwKTsKCXNob3J0ZXN0W3NdPTA7CgkKCQoKCXZlY3RvcjxpbnQ+IGZpdmVfY291bnQobisxLDApOwoJCgkJaWYodmFsW3NdPT01KXsKCQlmaXZlX2NvdW50W3NdPTE7Cgl9CgkKCQoKCgl3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgIGludCBhID0gcS5mcm9udCgpOwoJICAgCgkgICAKCSAgIHEucG9wKCk7CgoKCSAgIGZvcihhdXRvIGl0IDogZ1thXSl7CiAgICAgICAgICAgaWYoIXZpc2l0ZWRbaXRdKXsKCQkJcS5wdXNoKGl0KTsKCQkJdmlzaXRlZFtpdF09MTsKCQkJc2hvcnRlc3RbaXRdID0gc2hvcnRlc3RbYV0rMTsKCQkJaWYodmFsW2l0XT09NSl7CgkJCQlmaXZlX2NvdW50W2l0XSA9IGZpdmVfY291bnRbYV0gKyAxOwoJCQl9CgkJCWVsc2V7CgkJCQkJZml2ZV9jb3VudFtpdF0gPSBmaXZlX2NvdW50W2FdOwoJCQl9CgkJICAgfQoJCSAgIGVsc2V7CgkJICAgCWlmKHNob3J0ZXN0W2l0XT09c2hvcnRlc3RbYV0rMSl7CgkJICAgCQlpZih2YWxbaXRdPT01KXsKCQkgICAJCQlmaXZlX2NvdW50W2l0XSA9IG1heChmaXZlX2NvdW50W2l0XSxmaXZlX2NvdW50W2FdKzEpOwoJCSAgIAkJfWVsc2V7CgkJICAgCQkJZml2ZV9jb3VudFtpdF0gPSBtYXgoZml2ZV9jb3VudFtpdF0sZml2ZV9jb3VudFthXSk7CgkJICAgCQl9CgkJICAgCX0KCQkgICB9CgkgICB9Cgl9CgoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCWlmICh2aXNpdGVkW2ldID09IDApIHsKICAgICAgICAgICAgY291dCA8PCAtMSA8PCAiICIgPDwgLTEgPDwgIlxuIjsgCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY291dCA8PCBzaG9ydGVzdFtpXSA8PCAiICIgPDwgZml2ZV9jb3VudFtpXSA8PCAiXG4iOyAKICAgICAgICB9CgkJCgoJfQp9