#include<bits/stdc++.h>
#define int long long
using namespace std;
void read(int &a){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||'9'<ch){
if(ch=='-')w=-1;
ch=getchar();
}
while('0'<=ch&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
a=s*w;
}
const int N=2e5+10;
int n,m,dfn[N],low[N],cnt,in[N],T,num,siz[N],id[N],d[N],ok[N],nn,pd[N],jsq;
bool vis[N],vvis[N];
struct node{
int v,id;
};
vector<node>a[N];
void dfs(int u){
for(int i=0;i<a[u].size();i++){
int v=a[u][i].v;
if(!vvis[v]){
vvis[v]=1;
jsq++;
dfs(v);
}
}
}
vector<int>b[N],jl[N];
stack<int>s;
void tarjan(int x,int fa){
dfn[x]=low[x]=++cnt;
s.push(x);
in[x]=1;
for(int i=0;i<b[x].size();i++){
int v=b[x][i];
if(v==fa)continue;
if(!dfn[v]){
tarjan(v,x);
low[x]=min(low[x],low[v]);
}
else if(in[v]){
low[x]=min(low[x],dfn[v]);
}
}
if(low[x]==dfn[x]){
int k=0;
num++;
while(x!=k){
k=s.top();
s.pop();
in[k]=0;
id[k]=num;
siz[num]++;
}
}
}
signed main(){
cin>>T;
while(T--){
cnt=num=0;
read(n),read(m);
nn=n;
for(int i=1;i<=n;i++){
a[i].clear();
b[i].clear();
jl[i].clear();
jl[i].push_back(i);
dfn[i]=low[i]=siz[i]=in[i]=id[i]=d[i]=ok[i]=pd[i]=0;
}
for(int i=1;i<=m;i++){
vis[i]=0;
int u,v;
read(u),read(v);
a[u].push_back({v,i});
a[v].push_back({u,i});
d[u]++,d[v]++;
}
queue<int>q;
for(int i=1;i<=n;i++){
if(d[i]==1){
q.push(i);
}
}
while(!q.empty()){
int i=q.front();
q.pop();
ok[i]=1;
nn--;
for(int j=0;j<a[i].size();j++){
if(vis[a[i][j].id])continue;
int v=a[i][j].v;
d[v]--;
if(d[v]==1)q.push(v);
for(int k=0;k<jl[i].size();k++){
jl[v].push_back(jl[i][k]);
}
vis[a[i][j].id]=1;
}
}
for(int i=1;i<=n;i++){
vvis[i]=0;
for(int j=0;j<a[i].size();j++){
int v=a[i][j].v,id=a[i][j].id;
if(vis[id])continue;
b[i].push_back(v);
}
}
jsq=0;
dfs(1);
if(jsq!=n){
cout<<"-1\n";
continue;
};
for(int i=1;i<=n;i++){
if(!ok[i]){
tarjan(i,0);
break;
}
}
if(cnt!=nn||m==n-1){
cout<<"-1\n";
continue;
}
int f=0;
for(int i=1;i<=n;i++){
if(ok[i]||siz[id[i]]==1)continue;
int ff=1;
for(int j=0;j<b[i].size();j++){
int v=b[i][j];
if(siz[id[v]]==1){
ff=0;
break;
}
}
if(!ff)continue;
for(int j=0;j<jl[i].size();j++){
pd[jl[i][j]]=1;
}
f=1;
for(int j=1;j<=n;j++){
if(pd[j])cout<<'B';
else cout<<'W';
}
cout<<'\n';
break;
}
if(!f)cout<<"-1\n";
}
return 0;
}