#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using vi = vector<int>;
using vll = vector<ll>;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vipair = vector<pair<ll, ll>>;
template <class T>
using v = vector<T>;
const int INF_INT = 1e9;
const ll INF_LL = (1LL << 60);
const int MOD = 1000000007;
int main(){
ll n , v ;
cin>>n>>v;
vector<ll> val(n+5);
for (ll i = 1; i <= n; i++) {cin >> val[i];}
vector<vector<ll>>gp(n+5);
for(ll i = 0 ;i<v;i++){
ll x ,y ;
cin>>x>>y;
gp[x].push_back(y);
gp[y].push_back(x);
}
ll source = 1 ;
vector<ll>vis(n+5 , 0);
vector<ll>ways(n+5 , 0);
vector<ll>level(n+5 , 0) ;
queue<ll>q;
q.push(source);
vis[source] = 1 ;
level[source] = 0 ;
vector<ll>fives(n+5, 0 );
vector<ll>fives_second_round(n+5, 0) ;
if(val[1]==5)fives[1] = 1 ;
while(!q.empty()){
ll ele = q.front();
q.pop();
for(auto x : gp[ele]){
if(vis[x]==0){
vis[x] = 1 ;
level[x] = level[ele] + 1 ;
if(val[x]==5){
fives[x] = fives[ele] + 1 ;
}
else{
fives[x] = fives[ele] + 0 ;
}
q.push(x);
}
else{
if(level[ele] + 1 == level[x]){
ll temp;
if(val[x]==5){
temp =fives[ele] +1 ;
}
else{
temp = fives[ele];
}
if(temp > fives[x]){
fives[x] = temp;
}
}
}
}
}
//**Second round required to get the final value of 5's for the node x */
cout<<endl ;
vis.assign(n+5,0);
level.assign(n+5,0);
q.push(source) ;
vis[source] = 1 ;
level[source] = 0 ;
ways[1] = 1 ;
if(val[1]==5){
fives_second_round[1] = 1 ;
}
while(!q.empty()){
ll ele = q.front();
cout<<ele<<" "<<ways[ele]<<endl;//printing that node with its number of ways to visit
q.pop();
for(auto x : gp[ele]){
if(vis[x]==0){
vis[x] = 1 ;
level[x] = level[ele] + 1 ;
if(val[x]==5){
fives_second_round[x] = fives_second_round[ele] + 1 ;
}
else{
fives_second_round[x] = fives_second_round[ele] + 0 ;
}
if(fives_second_round[x] == fives[x])ways[x] = ways[ele] + ways[x];
q.push(x);
}
else{
if(level[ele] + 1 == level[x]){
ll temp;
if(val[x]==5){
temp =fives_second_round[ele] +1 ;
}
else{
temp = fives_second_round[ele];
}
if(temp > fives_second_round[x]){
fives_second_round[x] = temp;
}
if(temp == fives[x]){
ways[x] = ways[ele] + ways[x] ;
}
}
}
}
}
return 0 ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKdXNpbmcgdWxsID0gdW5zaWduZWQgbG9uZyBsb25nOwp1c2luZyBsZCA9IGxvbmcgZG91YmxlOwoKdXNpbmcgdmkgPSB2ZWN0b3I8aW50PjsKdXNpbmcgdmxsID0gdmVjdG9yPGxsPjsKdXNpbmcgcGlpID0gcGFpcjxpbnQsIGludD47CnVzaW5nIHBsbCA9IHBhaXI8bGwsIGxsPjsKdXNpbmcgdmlwYWlyICA9IHZlY3RvcjxwYWlyPGxsLCBsbD4+OyAKCnRlbXBsYXRlIDxjbGFzcyBUPgp1c2luZyB2ID0gdmVjdG9yPFQ+OwoKY29uc3QgaW50IElORl9JTlQgPSAxZTk7CmNvbnN0IGxsIElORl9MTCA9ICgxTEwgPDwgNjApOwpjb25zdCBpbnQgTU9EID0gMTAwMDAwMDAwNzsKCgppbnQgbWFpbigpewoKICAgIGxsIG4gLCB2IDsgCgogICAgY2luPj5uPj52OyAKCiAgICAKICAgIHZlY3RvcjxsbD4gdmFsKG4rNSk7CiAgICBmb3IgKGxsIGkgPSAxOyBpIDw9IG47IGkrKykge2NpbiA+PiB2YWxbaV07fQoKICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PmdwKG4rNSk7IAogICAgZm9yKGxsIGkgPSAwIDtpPHY7aSsrKXsKICAgICAgICBsbCB4ICx5ICA7IAogICAgICAgIGNpbj4+eD4+eTsgCiAgICAgICAgZ3BbeF0ucHVzaF9iYWNrKHkpOyAKICAgICAgICBncFt5XS5wdXNoX2JhY2soeCk7IAogICAgfQoKCgogICAgbGwgIHNvdXJjZSA9IDEgOyAKICAgIHZlY3RvcjxsbD52aXMobis1ICwgMCk7IAogICAgdmVjdG9yPGxsPndheXMobis1ICwgMCk7IAogICAgdmVjdG9yPGxsPmxldmVsKG4rNSAsIDApIDsgCiAgICBxdWV1ZTxsbD5xOyAKICAgIHEucHVzaChzb3VyY2UpOwogICAgdmlzW3NvdXJjZV0gPSAgMSA7IAogICAgbGV2ZWxbc291cmNlXSA9IDAgOyAKICAgCiAKICAgIHZlY3RvcjxsbD5maXZlcyhuKzUsIDAgKTsgCiAgICB2ZWN0b3I8bGw+Zml2ZXNfc2Vjb25kX3JvdW5kKG4rNSwgMCkgOyAKICAgICAgaWYodmFsWzFdPT01KWZpdmVzWzFdID0gMSA7IAogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgbGwgZWxlID0gcS5mcm9udCgpOyAKICAgICAgICBxLnBvcCgpOyAKCiAgICAgICAgZm9yKGF1dG8geCAgOiBncFtlbGVdKXsKICAgICAgICAgICAgaWYodmlzW3hdPT0wKXsKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2aXNbeF0gPSAxIDsgCiAgICAgICAgICAgICAgICBsZXZlbFt4XSA9IGxldmVsW2VsZV0gKyAxIDsgCiAgICAgICAgICAgICAgICBpZih2YWxbeF09PTUpewogICAgICAgICAgICAgICAgICAgIGZpdmVzW3hdID0gZml2ZXNbZWxlXSAgKyAxIDsKICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgIGZpdmVzW3hdID0gZml2ZXNbZWxlXSArIDAgOyAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBxLnB1c2goeCk7IAogICAgICAgICAgICB9IAogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgaWYobGV2ZWxbZWxlXSArIDEgPT0gbGV2ZWxbeF0pewogICAgICAgICAgICAgICAgICAgIGxsICB0ZW1wOyAKICAgICAgICAgICAgICAgICAgICBpZih2YWxbeF09PTUpewogICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPWZpdmVzW2VsZV0gKzEgIDsgIAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgICAgICB0ZW1wID0gZml2ZXNbZWxlXTsgCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZih0ZW1wID4gZml2ZXNbeF0pewogICAgICAgICAgICAgICAgICAgICAgICBmaXZlc1t4XSA9IHRlbXA7IAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgoKICAgIC8vKipTZWNvbmQgcm91bmQgcmVxdWlyZWQgdG8gIGdldCB0aGUgZmluYWwgIHZhbHVlIG9mIDUncyBmb3IgdGhlIG5vZGUgeCAqLwoKICAgIGNvdXQ8PGVuZGwgOyAKICAgIHZpcy5hc3NpZ24obis1LDApOyAKICAgIGxldmVsLmFzc2lnbihuKzUsMCk7IAoKICAgIHEucHVzaChzb3VyY2UpIDsgCiAgICB2aXNbc291cmNlXSA9ICAxIDsgCiAgICBsZXZlbFtzb3VyY2VdID0gMCA7IAogICAgICB3YXlzWzFdID0gMSA7IAogICAgICBpZih2YWxbMV09PTUpewogICAgICAgIGZpdmVzX3NlY29uZF9yb3VuZFsxXSA9IDEgOwogICAgICB9CiAgICAgICB3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgICBsbCBlbGUgPSBxLmZyb250KCk7IAoKICAgICAgICBjb3V0PDxlbGU8PCIgIjw8d2F5c1tlbGVdPDxlbmRsOy8vcHJpbnRpbmcgdGhhdCBub2RlIHdpdGggaXRzIG51bWJlciBvZiB3YXlzIHRvIHZpc2l0IAogICAgICAgIHEucG9wKCk7IAogICAgICAgCiAgICAgICAgZm9yKGF1dG8geCAgOiBncFtlbGVdKXsKICAgICAgICAgICAgaWYodmlzW3hdPT0wKXsKICAgICAgICAgICAgICAgIHZpc1t4XSA9IDEgOyAKICAgICAgICAgICAgICAgIGxldmVsW3hdID0gbGV2ZWxbZWxlXSArIDEgOyAKICAgICAgICAgICAgICAgIGlmKHZhbFt4XT09NSl7CiAgICAgICAgICAgICAgICAgICAgZml2ZXNfc2Vjb25kX3JvdW5kW3hdID0gZml2ZXNfc2Vjb25kX3JvdW5kW2VsZV0gICsgMSA7ICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgZml2ZXNfc2Vjb25kX3JvdW5kW3hdID0gZml2ZXNfc2Vjb25kX3JvdW5kW2VsZV0gKyAwIDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKGZpdmVzX3NlY29uZF9yb3VuZFt4XSA9PSBmaXZlc1t4XSl3YXlzW3hdID0gd2F5c1tlbGVdICsgd2F5c1t4XTsgCiAgICAgICAgICAgICAgICAgcS5wdXNoKHgpOyAKICAgICAgICAgICAgfSAKICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIGlmKGxldmVsW2VsZV0gKyAxID09IGxldmVsW3hdKXsKICAgICAgICAgICAgICAgICAgICBsbCAgdGVtcDsgCiAgICAgICAgICAgICAgICAgICAgaWYodmFsW3hdPT01KXsKICAgICAgICAgICAgICAgICAgICAgICB0ZW1wID1maXZlc19zZWNvbmRfcm91bmRbZWxlXSArMSAgOyAgCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBmaXZlc19zZWNvbmRfcm91bmRbZWxlXTsgCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZih0ZW1wID4gZml2ZXNfc2Vjb25kX3JvdW5kW3hdKXsKICAgICAgICAgICAgICAgICAgICAgICAgZml2ZXNfc2Vjb25kX3JvdW5kW3hdID0gdGVtcDsgCiAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmKHRlbXAgPT0gZml2ZXNbeF0pewogICAgICAgICAgICAgICAgICAgICAgICB3YXlzW3hdID0gd2F5c1tlbGVdICsgd2F5c1t4XSA7IAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgoKCgoKCgogICAgcmV0dXJuIDAgOwp9