#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<vector>
#include<algorithm>
#include<functional>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<deque>
#include<tuple>
#include<iostream>
#include<string>
#include<unordered_map>
#include<unordered_set>
using namespace std;
#define REP(i,x) for (int i=0;i<x;i++)
#define REPP(i,x,y) for (int i=x;i<=y;i++)
#define SI(x) scanf("%d",&x)
#define SL(x) scanf("%lld",&x)
#define MX3(x,y,z) max({x,y,z})
#define MX4(x,y,z,p) max({x,y,z,p})
#define MX5(x,y,z,p,q) max({x,y,z,p,q})
#define MN3(x,y,z) min({x,y,z})
#define MN4(x,y,z,p) min({x,y,z,p})
#define MN5(x,y,z,p,q) min({x,y,z,p,q})
#define amax(x,y) x=max(x,y)
#define amin(x,y) x=min(x,y)
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<bool> vb;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef vector<vb> vvb;
typedef long double ld;
typedef pair<int,int> pi;
typedef pair<ll,ll> pl;
typedef tuple<int,int,int> ti;
typedef tuple<ll,ll,ll> tl;
// #####################################################################

const string RED = "Red";
const string BLUE = "Blue";
char arr[20];

int color[300];

void solve() {

    int n;
    scanf("%d", &n);
    memset(color, -1, sizeof(color));

    int flag = 1;
    printf("? ");
    REP(i, n) printf("%d ", i+1);
    puts("");
    fflush(stdout);

    scanf("%s", arr);
    int type = 0;
    if (RED == arr) type = 1;
    else type = 2;

    int l = 2, r = n+1;

    while(l < r) {
        int mid = (l+r) / 2;

        printf("? ");
        REP(i, n) printf("%d ", mid+i);
        puts("");
        fflush(stdout);

        scanf("%s", arr);
        int ntype = 0;
        if(RED == arr) ntype = 1;
        else ntype = 2;

        if(type != ntype) {
            r = mid;
        } else {
            l = mid+1;
        }
    }
    
    flag = l;

    vi ttt;
    for(int i = 1 ; i < flag ; i++) {
        printf("? ");
        REP(j, n-1) printf("%d ", flag+j);
        printf("%d", i);
        puts("");
        fflush(stdout);

        scanf("%s", arr);
        if(RED == arr) color[i] = 1;
        else color[i] = 2;
    }
    for(int i = flag+n-1 ; i <= n*2 ; i++) {
        printf("? ");
        REP(j, n-1) printf("%d ", flag+j);
        printf("%d", i);
        puts("");
        fflush(stdout);

        scanf("%s", arr);
        if(RED == arr) color[i] = 1;
        else color[i] = 2;
    }
    int c1 = 0, c2 = 0;
    for(int i = 1 ; i <= 2 * n ; i++) {
        if(color[i] == 1) {
            if(c1 < (n-1)/2) {
                ttt.push_back(i);
                c1++;
            }
        }
        if(color[i] == 2) {
            if(c2 < (n-1)/2) {
                ttt.push_back(i);
                c2++;
            }
        }
    }
    for(int i = flag ; i <= flag+n-1-1 ; i++) {
        printf("? ");
        for(auto e: ttt) printf("%d ", e);
        printf("%d", i);
        puts("");
        fflush(stdout);

        scanf("%s", arr);
        if(RED == arr) color[i] = 1;
        else color[i] = 2;
    }

    printf("! ");
    for(int i = 1 ; i <= n * 2 ; i++) {
        if(color[i] == 1) putchar('R');
        else if(color[i] == 2) putchar('B');
    }
    puts("");
}

void init() {
    


}

int main () {
    init();
    solve();
    return 0;
}


Measured memory_bytes: 724