# https://yukicoder.me/problems/no/3056 from collections import deque def main(): N, M = map(int, input().split()) edges = [] for _ in range(M): u, v = map(int, input().split()) edges.append((u - 1, v - 1)) if M % 2 == 1: print(-1) return next_nodes = [[] for _ in range(N)] for i in range(M): u, v = edges[i] next_nodes[u].append((v, i)) next_nodes[v].append((u, i)) for x, _ in next_nodes[0]: if x == N - 1: print(-1) return answers = [None for _ in range(M)] queue = deque() passed = [False] * N if len(next_nodes[0]) < len(next_nodes[N - 1]): passed[0] = True queue.append(0) f1 = N - 1 else: passed[N - 1] = True queue.append(N - 1) f1 = 0 r_num = M // 2 b_num = M // 2 while len(queue) > 0: v = queue.popleft() for w, i in next_nodes[v]: if answers[i] is None: if b_num > 0 and w == f1: b_num -= 1 answers[i] = "B" else: r_num -= 1 answers[i] = "R" if r_num == 0: break if w != f1: if not passed[w]: passed[w] = True queue.append(w) if r_num == 0: break for i in range(M): if answers[i] is None: if r_num > 0: answers[i] = "R" r_num -= 1 elif b_num > 0: answers[i] = "B" b_num -= 1 print("".join(answers)) if __name__ == "__main__": main()