import java.util.*;
class TreeLeaves {
static List<Integer>[] G;
static int[] nodeValue;
static int count = 0;
static void dfs(int node, int parent) {
boolean isLeaf = true;
for (int child : G[node]) {
if (child != parent) {
isLeaf = false;
dfs(child, node);
}
}
// Count only leaves whose value is 1
if (isLeaf && nodeValue[node] == 1) {
count++;
}
}
public static void main
(String[] args
) {
Scanner sc
= new Scanner
(System.
in);
int N = sc.nextInt();
nodeValue = new int[N + 1];
// Initialize graph
for (int i = 1; i <= N; i++) {
G[i] = new ArrayList<>();
}
// Node values
for (int i = 1; i <= N; i++) {
nodeValue[i] = sc.nextInt();
}
// Edges
for (int i = 0; i < N - 1; i++) {
int u = sc.nextInt();
int v = sc.nextInt();
G[u].add(v);
G[v].add(u);
}
// Root the tree at node 1
dfs(1, -1);
sc.close();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwpjbGFzcyBUcmVlTGVhdmVzIHsKCiAgICBzdGF0aWMgTGlzdDxJbnRlZ2VyPltdIEc7CiAgICBzdGF0aWMgaW50W10gbm9kZVZhbHVlOwogICAgc3RhdGljIGludCBjb3VudCA9IDA7CgogICAgc3RhdGljIHZvaWQgZGZzKGludCBub2RlLCBpbnQgcGFyZW50KSB7CgogICAgICAgIGJvb2xlYW4gaXNMZWFmID0gdHJ1ZTsKCiAgICAgICAgZm9yIChpbnQgY2hpbGQgOiBHW25vZGVdKSB7CiAgICAgICAgICAgIGlmIChjaGlsZCAhPSBwYXJlbnQpIHsKICAgICAgICAgICAgICAgIGlzTGVhZiA9IGZhbHNlOwogICAgICAgICAgICAgICAgZGZzKGNoaWxkLCBub2RlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQ291bnQgb25seSBsZWF2ZXMgd2hvc2UgdmFsdWUgaXMgMQogICAgICAgIGlmIChpc0xlYWYgJiYgbm9kZVZhbHVlW25vZGVdID09IDEpIHsKICAgICAgICAgICAgY291bnQrKzsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgICAgICBTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCiAgICAgICAgaW50IE4gPSBzYy5uZXh0SW50KCk7CgogICAgICAgIEcgPSBuZXcgQXJyYXlMaXN0W04gKyAxXTsKICAgICAgICBub2RlVmFsdWUgPSBuZXcgaW50W04gKyAxXTsKCiAgICAgICAgLy8gSW5pdGlhbGl6ZSBncmFwaAogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkrKykgewogICAgICAgICAgICBHW2ldID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgfQoKICAgICAgICAvLyBOb2RlIHZhbHVlcwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkrKykgewogICAgICAgICAgICBub2RlVmFsdWVbaV0gPSBzYy5uZXh0SW50KCk7CiAgICAgICAgfQoKICAgICAgICAvLyBFZGdlcwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTiAtIDE7IGkrKykgewogICAgICAgICAgICBpbnQgdSA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgaW50IHYgPSBzYy5uZXh0SW50KCk7CgogICAgICAgICAgICBHW3VdLmFkZCh2KTsKICAgICAgICAgICAgR1t2XS5hZGQodSk7CiAgICAgICAgfQoKICAgICAgICAvLyBSb290IHRoZSB0cmVlIGF0IG5vZGUgMQogICAgICAgIGRmcygxLCAtMSk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb3VudCk7CgogICAgICAgIHNjLmNsb3NlKCk7CiAgICB9Cn0=