#include<bits/stdc++.h>
using namespace std;
const int N=2010;
int f[N],a[N],g[N],n,h[N];
int w[N*2],ne[N*2],la[N],t,cnt;
void link(int x,int y){
	w[++t]=y;
	ne[t]=la[x];
	la[x]=t;
}
void dp(int x,int fa,int dep){
	int sum=0,mx=0;
	g[x]=a[x];
	cnt+=a[x]*dep;
	h[x]=0;
	for (int y=la[x];y;y=ne[y]){
		int z=w[y];
		if (z==fa)continue;
		dp(z,x,dep+1);
		mx=max(mx,f[z]+g[z]);
		g[x]+=g[z];
		h[x]+=h[z]+g[z];
	}
	for (int y=la[x];y;y=ne[y]){
		int z=w[y];
		if (z==fa)continue;
		int q=min(h[z]+g[z],mx);
		if ((q^(h[z]+g[z]))&1)q--;
		sum+=q;
	}
	f[x]=max(sum&1,2*mx-sum);
}
int main(){
	cin>>n;
	scanf("\n");
	for (int i=1;i<=n;i++)a[i]=getchar()=='1';
	for (int i=1;i<n;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		link(x,y);
		link(y,x);
	}
	int ans=1e9;
	for (int i=1;i<=n;i++){
		cnt=0;
		dp(i,0,0);
		if (!f[i])
			ans=min(ans,cnt>>1);
	}
	if (ans>5e8)ans=-1;
	cout<<ans<<endl;
}