long r;j,n,u,v,x,y;char*q;s[200020];typeof(s)t,g,h;d(p,o,z,i){int w=z=q[o-1]!=99,c=!z,l=t[o];for(;i=h[l];l=g[l])if(i-p)d(o,i),r+=z*u*(y+~v),c+=u,w+=v;r+=!!p*z*(x-c)*(w-1);u=c;v=w;}f(a,b){g[++j]=t[a];h[t[a]=j]=b;}main(a,b){for(scanf("%d%s",&n,q=s);*q++-99?++y:++x,~scanf("%d%d",&a,&b);f(b,a))f(a,b);q=s;d(0,1);r=!printf("%ld",r);}