import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
int m = sc.nextInt();
List<List<Integer>> adj = new ArrayList<>();
for(int i=0; i<=n;i++){
adj.add(new ArrayList<>());
}
int value[] = new int[n+1];
for(int i=1;i<=n;i++){
value[i] = sc.nextInt();
}
for(int i=0; i<m; i++){
int u = sc.nextInt();
int v = sc.nextInt();
adj.get(u).add(v);
adj.get(v).add(u);
}
int parent[] = new int[n+1];
int visited[] = new int[n+1];
int sum[] = new int[n+1];
maxSumOfSubtree(1,parent,visited,value,sum,adj);
int max =0;
for(int x: sum){
}
}
public static void maxSumOfSubtree(int node,int []par,int []vis,int[] value,int []sum,List<List<Integer>> adj){
vis[node] = 1;
for(int x : adj.get(node)){
if(vis[x] == 0){
par[x] = node;
maxSumOfSubtree(x,par,vis,value,sum,adj);
}
}
int s=0;
for(int child : adj.get(node)){
if(child != par[node]){
// this is a child node;
s+=sum[child];
}
}
sum[node] = value[node] + s;
}
}
IAppbXBvcnQgamF2YS51dGlsLio7CmltcG9ydCBqYXZhLmxhbmcuKjsKaW1wb3J0IGphdmEuaW8uKjsKIAovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlpbnQgbiA9IHNjLm5leHRJbnQoKTsKCQlpbnQgbSA9IHNjLm5leHRJbnQoKTsKCQlMaXN0PExpc3Q8SW50ZWdlcj4+IGFkaiA9IG5ldyBBcnJheUxpc3Q8PigpOwoJCWZvcihpbnQgaT0wOyBpPD1uO2krKyl7CgkJCWFkai5hZGQobmV3IEFycmF5TGlzdDw+KCkpOwoJCX0KCQkKCQlpbnQgdmFsdWVbXSA9IG5ldyBpbnRbbisxXTsKCQkKCQlmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJCXZhbHVlW2ldID0gc2MubmV4dEludCgpOwoJCX0KCgkJZm9yKGludCBpPTA7IGk8bTsgaSsrKXsKCQkJaW50IHUgPSBzYy5uZXh0SW50KCk7CgkJCWludCB2ID0gc2MubmV4dEludCgpOwoJCQlhZGouZ2V0KHUpLmFkZCh2KTsKCQkJYWRqLmdldCh2KS5hZGQodSk7CgkJfQoJCWludCBwYXJlbnRbXSA9IG5ldyBpbnRbbisxXTsKCQlpbnQgdmlzaXRlZFtdID0gbmV3IGludFtuKzFdOwoJCWludCBzdW1bXSA9IG5ldyBpbnRbbisxXTsKCQltYXhTdW1PZlN1YnRyZWUoMSxwYXJlbnQsdmlzaXRlZCx2YWx1ZSxzdW0sYWRqKTsKCQlpbnQgbWF4ID0wOwoJCWZvcihpbnQgeDogc3VtKXsKCQkJbWF4ID0gTWF0aC5tYXgobWF4LHgpOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKHN1bSkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihtYXgpOwoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWF4U3VtT2ZTdWJ0cmVlKGludCBub2RlLGludCBbXXBhcixpbnQgW112aXMsaW50W10gdmFsdWUsaW50IFtdc3VtLExpc3Q8TGlzdDxJbnRlZ2VyPj4gYWRqKXsKCQkKCQl2aXNbbm9kZV0gPSAxOwoJCWZvcihpbnQgeCA6IGFkai5nZXQobm9kZSkpewoJCQlpZih2aXNbeF0gPT0gMCl7CgkJCQlwYXJbeF0gPSBub2RlOwoJCQkJbWF4U3VtT2ZTdWJ0cmVlKHgscGFyLHZpcyx2YWx1ZSxzdW0sYWRqKTsKCQkJfQoJCX0KCQkKCQlpbnQgcz0wOwoJCWZvcihpbnQgY2hpbGQgOiBhZGouZ2V0KG5vZGUpKXsKCQkJaWYoY2hpbGQgIT0gcGFyW25vZGVdKXsKCQkJCS8vIHRoaXMgaXMgYSBjaGlsZCBub2RlOwoJCQkJcys9c3VtW2NoaWxkXTsKCQkJfQoJCX0KCQkKCQlzdW1bbm9kZV0gPSB2YWx1ZVtub2RlXSArIHM7CgkJCgl9Cn0=