#include <bits/stdc++.h>
#define int long long
#define ll long long
using ull = unsigned long long;
using namespace std;
const int INF = 1e10;
const int MOD = 1e9 + 7;
#define dump(x)                             \
    if (dbg) {                              \
        cout << #x << " = " << (x) << endl; \
    }
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define FORR(i, a, b) for (int i = (a); i <= (b); ++i)
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define ub upper_bound
#define all(v) (v).begin(), (v).end()
#define SZ(x) ((int)(x).size())
#define P pair<int, int>
#define V vector<int>
#define S set<int>
#define itn int
bool dbg = false;
int N;
int a[2020];
int ans[2020];
int checka() {
    cout << "? ";
    FORR(i, 1, N) {
        if (a[i])
            cout << N + i << " ";
        else
            cout << i << " ";
    }
    cout << endl;
    string s;
    cin >> s;
    int r;
    if (s == "Red") {
        r = 1;
    } else {
        r = -1;
    }
    return r;
}


void solve() {
    bool flag = false;
    int t = 0;
    int tmp = 0;

    tmp = checka();
    int ok = 0;
    int ng = N + 1;
    while (abs(ok - ng) > 1) {
        itn mid = (ok + ng) / 2;
        FORR(i, 1, N) {
            if (i <= mid) {
                a[i] = 1;
            } else {
                a[i] = 0;
            }
        }
        if (tmp == checka()) {
            ok = mid;
        } else {
            ng = mid;
        }
    }
    t = ng;
    a[ng] = 1;
    tmp *= -1;
    /*
    while (!flag) {
        a[t] = 1;
        int r = checka();
        if (tmp == 0) {
            tmp = r;
        } else if (tmp != r) {
            tmp = r;
            break;
        }
        t++;
    }
    */
    int clr = tmp;
    ans[t] = clr * -1;
    ans[t + N] = clr;

    FORR(i, 1, N) {
        if (i == t)
            continue;
        cout << "? ";
        FORR(j, 1, N) {
            if (j == t)
                continue;
            if (a[j])
                cout << N + j << " ";
            else
                cout << j << " ";
        }
        int ch;
        if (a[i]) {
            cout << i;
            ch = i;
        } else {
            cout << i + N;
            ch = i + N;
        }
        cout << endl;

        string s;
        cin >> s;
        int r;
        if (s == "Red") {
            r = 1;
        } else {
            r = -1;
        }
        ans[ch] = r;
    }
    FORR(i, 1, N) {
        a[i] = (a[i] - 1) * -1;
    }
    FORR(i, 1, N) {
        if (i == t)
            continue;
        cout << "? ";
        FORR(j, 1, N) {
            if (j == t)
                continue;
            if (a[j])
                cout << N + j << " ";
            else
                cout << j << " ";
        }
        int ch;
        if (a[i]) {
            cout << i;
            ch = i;
        } else {
            cout << i + N;
            ch = i + N;
        }
        cout << endl;

        string s;
        cin >> s;
        int r;
        if (s == "Red") {
            r = 1;
        } else {
            r = -1;
        }
        ans[ch] = r;
    }

    cout << "! ";
    FORR(i, 1, N * 2) {
        if (ans[i] == 1) {
            cout << 'R';
        } else if (ans[i] == -1)
            cout << 'B';
        else {
            cout << endl
                 << "something went wrong " << ans[i] << endl;
        }
    }
}

signed main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    cin >> N;
    solve();
    return 0;
}


Measured memory_bytes: 724