long r;u,v,x,y;char*q;s[1<<18];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;u=c;v=w;r+=z*(x-c)*--w;}f(a,b){g[++u]=t[a];h[t[a]=u]=b;}main(u){for(gets(gets(q=s));*q++>99?++y:++x,~scanf("%d%d",&u,&v);f(v,u))f(u,v);q=s;d(0,1);r=!printf("%ld",r);}