#include <bits/stdc++.h>
using namespace std;
using i64 = int_fast64_t;
using ui64 = uint_fast64_t;
#define REP(i, n) for (i64 (i) = 0; (i) < (n); ++(i))
#define FOR(i, a, b) for (i64 (i) = (a); (i) < (b); ++(i))

bool fir_is_red;
int N;
string ans;

// red => true

// [l, r)
bool ask(int l, int r) {
    cout << '?';
    FOR(i, l, r) cout << ' ' << i + 1;
    cout << endl;
    string ret;
    cin >> ret;
    if (ret == "-1") exit(1);
    return (ret == "Red") ^ !fir_is_red;
}
bool ask(int l, int r, int x) {
    cout << '?';
    FOR(i, l, r) cout << ' ' << i + 1;
    cout << ' ' << x + 1;
    cout << endl;
    string ret;
    cin >> ret;
    if (ret == "-1") exit(1);
    return (ret == "Red") ^ !fir_is_red;
}
bool ask(int l1, int r1, int l2, int r2, int x) {
    cout << '?';
    FOR(i, l1, r1) cout << ' ' << i + 1;
    FOR(i, l2, r2) cout << ' ' << i + 1;
    cout << ' ' << x + 1;
    cout << endl;
    string ret;
    cin >> ret;
    if (ret == "-1") exit(1);
    return (ret == "Red") ^ !fir_is_red;
}

void answer() {
    if (fir_is_red) cout << "! " << ans << endl;
    else {
        cout << "! ";
        REP(i, 2 * N) {
            cout << (ans[i] == 'R' ? 'B' : 'R');
        }
        cout << endl;
    }
}

signed main() {

    cin >> N;
    
    ans = string(2 * N, '?');

    fir_is_red = true;
    fir_is_red = ask(0, N);

    int red = 0, blue = N;
    while (abs(red - blue) > 1) {
        int mid = (red + blue) >> 1;
        if (ask(mid, mid + N)) red = mid;
        else blue = mid;
    }

    // [blue, red + N)が半々
    // [0, red) + [blue + N, 2 * N)も半々

    REP(i, 2 * N) {
        if (blue <= i and i < red + N) {
            ans[i] = ask(0, red, blue + N, 2 * N, i) ? 'R' : 'B';
        } else {
            ans[i] = ask(blue, red + N, i) ? 'R' : 'B';
        }
    }

    answer();

}