#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+5,M=N*2;
int n,m,d[N],p[N],e[N],f[N],id[N],w[M];
inline bool cmp(int x,int y){return d[x]<d[y];}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&d[i]),p[i]=i;
	sort(p+1,p+n+1,cmp);
	for(int i=1,u,v;i<=m;i++)
	{
		scanf("%d%d",&u,&v);
		if(d[u]==d[v])
		{
			if(!f[u]&&!f[v])f[u]=1;
			if(!f[u])f[u]=-f[v];
			if(!f[v])f[v]=-f[u];
			if(f[u]==-f[v])w[i]=d[u];
		}
		else
		{
			if(d[u]<d[v])swap(u,v);
			e[u]=v;id[u]=i;
		}
	}
	for(int i=1,x;i<=n;i++)if(!f[x=p[i]])
	{
		if(!e[x]){puts("-1");return 0;}
		f[x]=f[e[x]];w[id[x]]=d[x]-d[e[x]];
	}
	for(int i=1;i<=n;i++)putchar(f[i]>0?'B':'W');
	for(int i=1;i<=m;i++)printf("\n%d",w[i]?w[i]:1000000000);
	return 0;
}
