#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) void solve() { ll n, m; cin >> n >> m; vector g(n, vector>()); { bool ok = m % 2 == 0; rep(i, m) { ll u, v; cin >> u >> v, u--, v--; g[u].emplace_back(v, i); g[v].emplace_back(u, i); if ((u == 0 && v == n - 1) || (u == n - 1 && v == 0)) { ok = false; } } if (!ok) { cout << "-1\n"; return; } } auto bfs = [&](ll s, ll t) -> vector { vector visited(n, false), used(m, false); deque que; visited[s] = true; que.push_back(s); while (!que.empty()) { ll u = que.front(); que.pop_front(); for (const auto &[v, mi] : g[u]) { used[mi] = true; if (visited[v]) { continue; } visited[v] = true; if (v == t) { continue; } que.push_back(v); } } return used; }; vector use_count(m, 0); { auto used = bfs(0, n - 1); rep(mi, m) use_count[mi] += used[mi]; } { auto used = bfs(n - 1, 0); rep(mi, m) use_count[mi] += used[mi]; } vector color(m, -1); ll x = 0; for (auto s : {0ll, n - 1}) { for (const auto &[v, mi] : g[s]) { if (use_count[mi] == 2) { color[mi] = s > 0; if (color[mi] == 0) x--; else x++; } } } rep(mi, m) if (color[mi] == -1) { if (x < 0) { x++; color[mi] = 1; } else { x--; color[mi] = 0; } } rep(mi, m) cout << (color[mi] == 0 ? "B" : "R"); cout << '\n'; } int main() { std::cin.tie(nullptr); std::ios_base::sync_with_stdio(false); int T = 1; for (int t = 0; t < T; t++) { solve(); } return 0; }