#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define sz(a) (int)(a.size())
const int N = 1005;
char color[205];
int n;
int perm[205] , inv[205];
int cnt = 0;
bool query(vector<int> v)
{
	cnt++;
	if(cnt == 211)
	{
		set<int> s;
		for(int i = 0; i < 10000 * 10000; i++)
			s.insert(i);
		cout << *s.begin() << endl;
	}
	cout << "?";
	for(auto x : v)
		cout << " " << perm[x] + 1;
	cout << endl;
	string resp;
	cin >> resp;
	return resp == "Red";
}
int f(int x)
{
	vector<int> v;
	for(int i = 0; i < n; i++)
		v.pb(i + x);
	return query(v);
}
int main()
{
	ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	srand(time(NULL) + 47);
	cin >> n;
	for(int i = 0; i < 2 * n; i++)
	{
		perm[i] = i;
	}
	for(int i = 0; i < 2 * n; i++)
		inv[perm[i]] = i;
	vector<int> v;
	for(int i = 0; i < n; i++)
		v.pb(i);
	int resp = query(v);
	bool was = false;
	
	int L = 0 , R = n;
	while(R - L > 1)
	{
		int M = (L + R) / 2;
		
		if(f(M) == resp)
			L = M;
		else
			R = M;
	}
	
	vector<int> v2;
	for(int j = L + 1; j < L + n; j++)
		v2.pb(j);
	v2.pb(-1);
	int cntR = 0 , cntB = 0;
	for(int j = 0; j < 2 * n; j++)
	{
		if(j >= L + 1 && j < L + n)
			continue;

		v2.back() = j;
		int resp3 = query(v2);
		color[j] = resp3 ? 'R' : 'B';
	}
	v2.clear();
	for(int j = 0; j < 2 * n; j++)
	{
		if(color[j] == 'R' && cntR < n / 2)
		{
			cntR++;
			v2.pb(j);
		}
		if(color[j] == 'B' && cntB < n / 2)
		{
			cntB++;
			v2.pb(j);
		}
	}
	
	v2.pb(-1);
	
	for(int j = L + 1; j < L + n; j++)
	{
		v2.back() = j;
		int resp3 = query(v2);
		color[j] = resp3 ? 'R' : 'B';	
	}
		
	cout << "! ";
	for(int i = 0; i < 2 * n; i++)
		cout << color[inv[i]];
	cout << endl;
	
}
