#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int e;
cin>>e;
vector<int> g[n+1];
vector<int> val(n+1, 0);
for(int i=1; i<=n; i++){
cin>>val[i];
}
for(int i=1; i<=e; i++){
int u,v;
cin>>u;
cin>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int source = 1;
// solution;
queue<int> q;
q.push(source);
vector<int> record (n+1,-1);
record[source]=0;
// cost of traversal minimum
vector<int> cost(n+1, 0);
cost[source] = val[source];
// // number of shortes paths:-
// vector<int> count(n+1, 0);
while(!q.empty()){
int t = q.front();
q.pop();
for(auto x: g[t]){
if(record[x]<0){
q.push(x);
record[x] = record[t]+1;
// count[x]++;
// cost:
cost[x] = val[x] + cost[t];
}
// same length:-
else if(record[x] == record[t]+1){
// count[x]++;
if(cost[x] < val[x]+cost[t]){
cost[x] = val[x] + cost[t];
}
}
}
}
for(int i=1; i<=n; i++){
cout<< cost[i]/5<< " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CgkKCWludCBuOwoJY2luPj5uOwoJaW50IGU7CgljaW4+PmU7CgoJdmVjdG9yPGludD4gZ1tuKzFdOwoJdmVjdG9yPGludD4gdmFsKG4rMSwgMCk7CgkKCWZvcihpbnQgaT0xOyBpPD1uOyBpKyspewoJCWNpbj4+dmFsW2ldOwoJfQoKCWZvcihpbnQgaT0xOyBpPD1lOyBpKyspewoJCWludCB1LHY7CgkJY2luPj51OwoJCWNpbj4+djsKCQlnW3VdLnB1c2hfYmFjayh2KTsKCQlnW3ZdLnB1c2hfYmFjayh1KTsKCX0KCglpbnQgc291cmNlID0gMTsKCgkvLyBzb2x1dGlvbjsKCglxdWV1ZTxpbnQ+IHE7CgoJcS5wdXNoKHNvdXJjZSk7CgoJdmVjdG9yPGludD4gcmVjb3JkIChuKzEsLTEpOwoJcmVjb3JkW3NvdXJjZV09MDsKCQoJLy8gY29zdCBvZiB0cmF2ZXJzYWwgbWluaW11bQoJdmVjdG9yPGludD4gY29zdChuKzEsIDApOwoJY29zdFtzb3VyY2VdID0gdmFsW3NvdXJjZV07CgkKCS8vIC8vIG51bWJlciBvZiBzaG9ydGVzIHBhdGhzOi0KCS8vIHZlY3RvcjxpbnQ+IGNvdW50KG4rMSwgMCk7CgkKCXdoaWxlKCFxLmVtcHR5KCkpewoJCQoJCWludCB0ID0gcS5mcm9udCgpOwoJCQoJCXEucG9wKCk7CgkJCgkJZm9yKGF1dG8geDogZ1t0XSl7CgkJCQoJCQlpZihyZWNvcmRbeF08MCl7CgkJCQlxLnB1c2goeCk7CgkJCQlyZWNvcmRbeF0gPSByZWNvcmRbdF0rMTsKCQkJCS8vIGNvdW50W3hdKys7CgkJCQkKCQkJCS8vIGNvc3Q6CgkJCQljb3N0W3hdID0gdmFsW3hdICsgY29zdFt0XTsKCQkJfQoJCQkvLyBzYW1lIGxlbmd0aDotCgkJCWVsc2UgaWYocmVjb3JkW3hdID09IHJlY29yZFt0XSsxKXsKCQkJCS8vIGNvdW50W3hdKys7CgkJCQkKCQkJCWlmKGNvc3RbeF0gPCB2YWxbeF0rY29zdFt0XSl7CgkJCQkJY29zdFt4XSA9IHZhbFt4XSArIGNvc3RbdF07CgkJCQl9CgkJCX0KCQl9CgoJfQoKCWZvcihpbnQgaT0xOyBpPD1uOyBpKyspewoJCWNvdXQ8PCBjb3N0W2ldLzU8PCAiICI7Cgl9CgoJcmV0dXJuIDA7Cn0=