#import resource
import sys
#resource.setrlimit(resource.RLIMIT_STACK, [0x100000000, resource.RLIM_INFINITY])
sys.setrecursionlimit(10**6)
mod=(10**9)+7
#fact=[1]
#import collections
#for i in range(1,1000001):
# fact.append((fact[-1]*i)%mod)
#ifact=[0]*1000001
#ifact[1000000]=pow(fact[1000000],mod-2,mod)
#for i in range(1000000,0,-1):
# ifact[i-1]=(i*ifact[i])%mod
from sys import stdin, stdout
from bisect import bisect_left as bl
from bisect import bisect_right as br
import itertools
import math
import heapq
from random import randint as rn
from Queue import Queue as Q
def modinv(n,p):
return pow(n,p-2,p)
def ncr(n,r,p):
t=((fact[n])*((ifact[r]*ifact[n-r])%p))%p
return t
def ain():
return map(int,sin().split())
def sin():
return stdin.readline().strip()
def GCD(x, y):
while(y):
x, y = y, x % y
return x
def isprime(x):
p=int(math.sqrt(x))+1
if(x==1):
return 0
for i in range(2,p):
if(x%p==0):
return 0
return 1
"""**************************************************************************"""
#pv is parent v
#xo is xor of all selected ancestors
def dfs(v,pv,xo):
if(dp[v][xo]!=-1):
return dp[v][xo]
s1=0
s2=0
for i in ad[v]:
if(i!=pv):
s1+=dfs(i,v,xo)
if(xo^value[v-1]==0):
s2+=dfs(i,v,0)
else:
s2+=dfs_skip(i,v,xo^value[v-1],xo^value[v-1])
s2+=value[v-1]
dp[v][xo]=max(s1,s2)
return dp[v][xo]
#for skipping J levels
def dfs_skip(v,pv,xo,J):
s=0
if(J==1):
for i in ad[v]:
if(i!=pv):
s+=dfs(i,v,xo)
else:
for i in ad[v]:
if(i!=pv):
s+=dfs_skip(i,v,xo,J-1)
return s
n=input()
value=ain()
ad=[[] for i in range(n+1)]
for i in range(n-1):
x,y=ain()
ad[x].append(y)
ad[y].append(x)
dp=[[-1 for i in range(1024)] for i in range(1024)]
q=dfs(1,0,0)
print q
I2ltcG9ydCByZXNvdXJjZQppbXBvcnQgc3lzCiNyZXNvdXJjZS5zZXRybGltaXQocmVzb3VyY2UuUkxJTUlUX1NUQUNLLCBbMHgxMDAwMDAwMDAsIHJlc291cmNlLlJMSU1fSU5GSU5JVFldKQpzeXMuc2V0cmVjdXJzaW9ubGltaXQoMTAqKjYpCm1vZD0oMTAqKjkpKzcKI2ZhY3Q9WzFdCiNpbXBvcnQgY29sbGVjdGlvbnMKI2ZvciBpIGluIHJhbmdlKDEsMTAwMDAwMSk6CiMgICAgZmFjdC5hcHBlbmQoKGZhY3RbLTFdKmkpJW1vZCkKI2lmYWN0PVswXSoxMDAwMDAxCiNpZmFjdFsxMDAwMDAwXT1wb3coZmFjdFsxMDAwMDAwXSxtb2QtMixtb2QpCiNmb3IgaSBpbiByYW5nZSgxMDAwMDAwLDAsLTEpOgojICAgIGlmYWN0W2ktMV09KGkqaWZhY3RbaV0pJW1vZApmcm9tIHN5cyBpbXBvcnQgc3RkaW4sIHN0ZG91dApmcm9tIGJpc2VjdCBpbXBvcnQgYmlzZWN0X2xlZnQgYXMgYmwKZnJvbSBiaXNlY3QgaW1wb3J0IGJpc2VjdF9yaWdodCBhcyBicgppbXBvcnQgaXRlcnRvb2xzCmltcG9ydCBtYXRoCmltcG9ydCBoZWFwcQpmcm9tIHJhbmRvbSBpbXBvcnQgcmFuZGludCBhcyBybgpmcm9tIFF1ZXVlIGltcG9ydCBRdWV1ZSBhcyBRCmRlZiBtb2RpbnYobixwKToKICAgIHJldHVybiBwb3cobixwLTIscCkKZGVmIG5jcihuLHIscCk6CiAgICB0PSgoZmFjdFtuXSkqKChpZmFjdFtyXSppZmFjdFtuLXJdKSVwKSklcAogICAgcmV0dXJuIHQKZGVmIGFpbigpOgogICAgcmV0dXJuIG1hcChpbnQsc2luKCkuc3BsaXQoKSkKZGVmIHNpbigpOgogICAgcmV0dXJuIHN0ZGluLnJlYWRsaW5lKCkuc3RyaXAoKQpkZWYgR0NEKHgsIHkpOgogICB3aGlsZSh5KToKICAgICAgIHgsIHkgPSB5LCB4ICUgeQogICByZXR1cm4geApkZWYgaXNwcmltZSh4KToKICAgIHA9aW50KG1hdGguc3FydCh4KSkrMQogICAgaWYoeD09MSk6CiAgICAgICAgcmV0dXJuIDAKICAgIGZvciBpIGluIHJhbmdlKDIscCk6CiAgICAgICAgaWYoeCVwPT0wKToKICAgICAgICAgICAgcmV0dXJuIDAKICAgIHJldHVybiAxCiIiIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIiIiCiNwdiBpcyBwYXJlbnQgdgojeG8gaXMgeG9yIG9mIGFsbCBzZWxlY3RlZCBhbmNlc3RvcnMKZGVmIGRmcyh2LHB2LHhvKToKICAgIGlmKGRwW3ZdW3hvXSE9LTEpOgogICAgICAgIHJldHVybiBkcFt2XVt4b10KICAgIHMxPTAKICAgIHMyPTAKICAgIGZvciBpIGluIGFkW3ZdOgogICAgICAgIGlmKGkhPXB2KToKICAgICAgICAgICAgczErPWRmcyhpLHYseG8pCiAgICAgICAgICAgIGlmKHhvXnZhbHVlW3YtMV09PTApOgogICAgICAgICAgICAgICAgczIrPWRmcyhpLHYsMCkKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHMyKz1kZnNfc2tpcChpLHYseG9edmFsdWVbdi0xXSx4b152YWx1ZVt2LTFdKQogICAgczIrPXZhbHVlW3YtMV0KICAgIGRwW3ZdW3hvXT1tYXgoczEsczIpCiAgICByZXR1cm4gZHBbdl1beG9dCiNmb3Igc2tpcHBpbmcgSiBsZXZlbHMKZGVmIGRmc19za2lwKHYscHYseG8sSik6CiAgICBzPTAKICAgIGlmKEo9PTEpOgogICAgICAgIGZvciBpIGluIGFkW3ZdOgogICAgICAgICAgICBpZihpIT1wdik6CiAgICAgICAgICAgICAgICBzKz1kZnMoaSx2LHhvKQogICAgZWxzZToKICAgICAgICBmb3IgaSBpbiBhZFt2XToKICAgICAgICAgICAgaWYoaSE9cHYpOgogICAgICAgICAgICAgICAgcys9ZGZzX3NraXAoaSx2LHhvLEotMSkKICAgIHJldHVybiBzCm49aW5wdXQoKQp2YWx1ZT1haW4oKQphZD1bW10gZm9yIGkgaW4gcmFuZ2UobisxKV0KZm9yIGkgaW4gcmFuZ2Uobi0xKToKICAgIHgseT1haW4oKQogICAgYWRbeF0uYXBwZW5kKHkpCiAgICBhZFt5XS5hcHBlbmQoeCkKZHA9W1stMSBmb3IgaSBpbiByYW5nZSgxMDI0KV0gZm9yIGkgaW4gcmFuZ2UoMTAyNCldCnE9ZGZzKDEsMCwwKQpwcmludCBx