#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
vector<int> value(n);
for(int i=0;i<n;i++)
cin>>value[i];
vector<vector<int>> adj(n);
for(int i=0;i<m;i++){
int u,v;
cin>>u>>v;
u--,v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
vector<int> dist(n,-1),cnt5(n,0);
queue<int> q;
dist[0]=0;
cnt5[0]=(value[0]==5);
q.push(0);
while(!q.empty()){
int u=q.front();
q.pop();
for(int v:adj[u]){
if(dist[v]==-1){
dist[v]=dist[u]+1;
cnt5[v]=cnt5[u]+(value[v]==5);
q.push(v);
}
else if(dist[v]==dist[u]+1){
cnt5[v]=max(cnt5[v],
cnt5[u]+(value[v]==5));
}
}
}
for(int i=0;i<n;i++){
cout<<dist[i]<<" "<<cnt5[i]<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewogICAgaW50IG4sbTsKICAgIGNpbj4+bj4+bTsKCiAgICB2ZWN0b3I8aW50PiB2YWx1ZShuKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgY2luPj52YWx1ZVtpXTsKCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IGFkaihuKTsKICAgIGZvcihpbnQgaT0wO2k8bTtpKyspewogICAgICAgIGludCB1LHY7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIHUtLSx2LS07CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIHZlY3RvcjxpbnQ+IGRpc3QobiwtMSksY250NShuLDApOwogICAgcXVldWU8aW50PiBxOwoKICAgIGRpc3RbMF09MDsKICAgIGNudDVbMF09KHZhbHVlWzBdPT01KTsKICAgIHEucHVzaCgwKTsKCiAgICB3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgICBpbnQgdT1xLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKCiAgICAgICAgZm9yKGludCB2OmFkalt1XSl7CiAgICAgICAgICAgIGlmKGRpc3Rbdl09PS0xKXsKICAgICAgICAgICAgICAgIGRpc3Rbdl09ZGlzdFt1XSsxOwogICAgICAgICAgICAgICAgY250NVt2XT1jbnQ1W3VdKyh2YWx1ZVt2XT09NSk7CiAgICAgICAgICAgICAgICBxLnB1c2godik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihkaXN0W3ZdPT1kaXN0W3VdKzEpewogICAgICAgICAgICAgICAgY250NVt2XT1tYXgoY250NVt2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNudDVbdV0rKHZhbHVlW3ZdPT01KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgY291dDw8ZGlzdFtpXTw8IiAiPDxjbnQ1W2ldPDwiXG4iOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==