import sys
from collections import defaultdict, deque
from sys import stdin
sys.setrecursionlimit(20**4)
input = lambda: stdin.readline().rstrip()
def solve():
n, m = map(int, input().split())
g = defaultdict(lambda: [])
for i in range(m):
u, v = map(int, input().split())
g[u].append(v)
g[v].append(u)
# 边少肯定不合法
if m < n:return ['-1']
vis = defaultdict(lambda : 0)
ans = ['B'] * (n)
def dfs(node,fas,flag):
vis[node] = 1
# 找到环之后,后继全涂白
if flag:
ans[node- 1]= 'W'
for child in g[node]:
if vis[child] == 0:
vis[child] = 1
dfs(child,fas,flag)
return
# 找环
cnt = 0
for child in g[node]:
if flag == True:break
if child in fas:
cnt += 1
if cnt >= 2:
ans[node - 1] = 'W'
flag = True
break
for child in g[node]:
if vis[child] == 0:
fas.add(node)
dfs(child,fas,flag)
dfs(1,set(),False)
# 图不连通肯定也不行:
for i in range(1,n+1):
if vis[i] == 0:return ['-1']
return ans
for i in range(int(input())): print(''.join(solve()))