#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for (int i = a; i <= b; i++)
#define per(i,a,b) for (int i = a; i >= b; i--)
#define pii pair<int,int>
#define fi first
#define se second
#define endl '\n'
#define pb push_back
#define all(v) (v).begin(), (v).end()
const int MAXN = 5e5+10;
const int INF = 1e18+10;
const int MOD = 1e9+7;
vector<pii> g[MAXN];
vector<int> t[MAXN];
int tin[MAXN], tout[MAXN], par[MAXN],mk[MAXN], eid[MAXN], dp[MAXN],dir[MAXN],down[MAXN],tempo;
string ans;
bool isch(int u, int v) {
return tin[u] >= tin[v] && tout[u] <= tout[v];
}
void dfs(int u, int p = -1, int li = -1) {
if (mk[u]) {
if(tin[u] < tin[p]) {
dp[p]++;
dp[u]--;
}
return;
}
if(p!=-1) {
t[p].pb(u);
par[u] = p;
}
mk[u] = 1;
tin[u] = ++tempo;
for(auto &[v,i] : g[u]) {
if(abs(i) == li) continue;
if(!mk[v] && i>0) down[v] = 1;
else if(!mk[v]) down[v] = 0;
if(!mk[v]) eid[v] = abs(i);
dfs(v,u,abs(i));
}
tout[u] = ++tempo;
}
void calc(int u) {
for(int &v : t[u]) {
calc(v);
dp[u] += dp[v];
dir[u]+=dir[v];
}
}
void solve() {
int n,m; cin >> n >> m;
rep(i,1,m) {
int u,v; cin >> u >> v;
g[u].pb({v,i});
g[v].pb({u,-i});
}
rep(i,1,m) ans += 'B';
dfs(1);
calc(1);
int p; cin >> p;
rep(i,1,p) {
int u,v; cin >> u >> v;
rep(i,2,n) {
if(dp[i]!=0) continue;
if((isch(u,i) && isch(v,i)) || (!isch(u,i) && !isch(v,i))) continue;
if((isch(i,u) && down[i]) || (isch(i,v) && !down[i])) ans[eid[i]-1] = 'L';
else ans[eid[i]-1] = 'R';
}
}
cout << ans << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0);cin.tie(nullptr);
int tt = 1;
//cin >> tt;
while(tt--) solve();
}