#define _USE_MATH_DEFINES
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#define _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
//#include <bits/stdc++.h>

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <bitset>
#include <unordered_map>
#include <unordered_set>
#include <cassert>
#include <fstream>
#include <array>
#include <string>
#include <cstring>
#include <functional>
#include <ctime>
#include <iostream>
#include <unordered_set>

#include <nmmintrin.h>
#include <mmintrin.h>
#include <emmintrin.h>


using namespace std;

#define dprint(Exp,...) if(Exp){fprintf(stderr, __VA_ARGS__);}
#define printe(...) fprintf(stderr, __VA_ARGS__);
//#define printe(...) void();
#define printE(...) fprintf(stderr, __VA_ARGS__);
//#define printE(...) void();


#define PrtExp(_Exp)  cerr<< #_Exp <<" = "<< (_Exp)
#define PrtExpN(_Exp)  cerr<< #_Exp <<" = "<< (_Exp) <<"\n"

#define SINT(n) scanf("%d",&n)
#define SINT2(n,m) scanf("%d %d",&n,&m)
#define SINT3(n,m,o) scanf("%d %d %d",&n,&m,&o)
#define SINT4(n,m,o,P) scanf("%d %d %d %d",&n,&m,&o,&P)
#define SINT5(n,m,o,P,q) scanf("%d %d %d %d %d",&n,&m,&o,&P,&q)
#define SLL(n) scanf("%lld",&n)
#define SLL2(n,m) scanf("%lld %lld",&n,&m)
#define SLL3(n,m,o) scanf("%lld %lld %lld",&n,&m,&o)
#define SST(s) scanf("%s",s)
#define SCH(c) scanf("%c",&c)

#define GC() getchar()

#define PINT(n) printf("%d",(int)(n))
#define PINT2(n,m) printf("%d %d",(int)(n),(int)(m))
#define PINT3(n,m,l) printf("%d %d %d",(int)(n),(int)(m),(int)(l))
#define PLL(n) printf("%lld",(long long)(n))
#define PST(s) printf("%s",(s))
#define PCH(s) printf("%c",(s))

#define PINTN(n) printf("%d\n",(int)(n))
#define PINT2N(n,m) printf("%d %d\n",(int)(n),(int)(m))
#define PINT3N(n,m,l) printf("%d %d %d\n",(int)(n),(int)(m),(int)(l))
#define PLLN(n) printf("%lld\n",(long long)(n))
#define PSTN(s) printf("%s\n",(s))
#define PCHN(s) printf("%c\n",(s))

#define PSP() printf(" ")
#define PN() printf("\n")

#define PC(c) putchar(c)
#define CSP (' ')
#define SN ("\n")

#define rep(i,a) for(int i=0;i<a;i++)
#define reP(i,a) for(int i=0;i<=a;i++)
#define Rep(i,a) for(int i=a-1;i>=0;i--)
#define ReP(i,a) for(int i=a;i>=0;i--)

#define rEp(i,a) for(i=0;i<a;i++)
#define rEP(i,a) for(i=0;i<=a;i++)
#define REp(i,a) for(i=a-1;i>=0;i--)
#define REP(i,a) for(i=a;i>=0;i--)

#define repft(i,a,b) for(int i=a;i<b;i++)
#define repfT(i,a,b) for(int i=a;i<=b;i++)
#define Repft(i,a,b) for(int i=a-1;i>=b;i--)
#define RepfT(i,a,b) for(int i=a;i>=b;i--)

#define foreach(a,it) for(auto it = a.begin(); it != a.end(); ++it)

#define FILL(a,v) fill(begin(a),end(a), v)
#define FILL0(a) memset(a,0,sizeof(a))
#define FILL1(a) memset(a,-1,sizeof(a))

typedef long long ll;

typedef unsigned long long ull;
typedef pair<int, int> Pi;
typedef pair<ll, ll>   Pll;


const int INF = 1'010'000'000; // 0x3C33'6080
const ll INFLL = 0x1f1f1f1f1f1f1f1fLL;//2,242,545,357,980,376,863

template <class A, class B> inline ostream& operator<<(ostream& st, const pair<A, B>& P) { return st << "(" << P.first << "," << P.second << ")"; };
template <class A, class B> inline pair<A, B> operator+(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first + Q.first, P.second + Q.second); };
template <class A, class B> inline pair<A, B> operator-(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first - Q.first, P.second - Q.second); };

#define fs  first
#define sc  second

int bitCount(unsigned long long bits) {
#if _MSC_VER >= 1920 || __INTEL_COMPILER
	return _mm_popcnt_u64(bits);
#else
	return __builtin_popcountll(bits);
#endif 
}

ll modpow(ll x, ll y, ll m) {
	if (y == 0) return 1;
	ll res = modpow(x, y / 2, m);
	return res * res % m * (y & 1 ? x : 1) % m;
}

void OLE(){
	for(;;) puts("AAAAAAAAAAAAAAAAAAAAAA");
}

set<int> p, q;

int col[202];

int main() {
	int cnt = 0;
	int n;
	string pre = "";
	int r = -1;
	int b = -1;
	cin >> n;

	cout << "?";
	rep(j, n) cout << " " << (1+j);
	cout << endl;
	cin >> pre;
	int SAME = 1;
	int DIFF = n+1;
	while(DIFF - SAME > 1){
		int m = (SAME + DIFF)/2;
		cout << "?";
		rep(j, n) cout << " " << (m+j);
		cout << endl;
		string res; cin >> res;
		if(pre == res){
			SAME = m;
		} else {
			DIFF = m;
		}
	}
	{
		if(pre == "Red"){
			r = SAME;
			b = SAME + n;
		}else{
			b = SAME;
			r = SAME + n;
		}
		rep(j, n-1) p.insert(DIFF+j);
		repft(j, 1, DIFF-1) q.insert(j);
		repft(j, DIFF+n, n+n+1) q.insert(j);
	}
	

	/*
	for(int i = 1; ; ++i){
		cout << "?";
		rep(j, n) cout << " " << (i+j);
		cout << endl;
		//if(++cnt > 210) OLE();

		string res; cin >> res;
		if(i == 1){
			pre = res;
		} else if(pre != res){
			if(pre == "Red"){
				r = i - 1;
				b = i + n - 1;
			}else{
				b = i - 1;
				r = i + n - 1;
			}
			rep(j, n-1) p.insert(i+j);
			repft(j, 1, i-1) q.insert(j);
			repft(j, i+n, n+n+1) q.insert(j);
			break;
		}
	}
	*/
	col[r] = 1;
	col[b] = 2;
	for(int i = 1; i <= n+n; ++i){
		if(col[i] != 0) continue;
		string res;
		//if(++cnt > 210) OLE();

		cout << "? " << i;
		if(p.count(i) == 0){
			for(auto&a:p) cout <<  " " << a;
		} else{
			for(auto&a:q) cout <<  " " << a;
		}
		cout <<endl;
		cin >> res;
		if(res == "Red") col[i] = 1; else col[i] = 2;
	}
	cout << "! ";
	for(int i = 1; i <= n+n; ++i){
		if(col[i] == 1) cout << "R"; else cout << "B";
	}
	cout << endl;
}


Measured memory_bytes: 724