Problem: This is an interactive task.

We have 2N balls arranged in a row, numbered 1, 2, 3, ..., 2N from left to right, where N is an odd number. Among them, there are N red balls and N blue balls.

While blindfolded, you are challenged to guess the color of every ball correctly, by asking at most 210 questions of the following form:

* You choose any N of the 2N balls and ask whether there are more red balls than blue balls or not among those N balls.



Now, let us begin.

Constraints

* 1 \leq N \leq 99
* N is an odd number.



* * *



Example

Input




Output

Solution (in CPP):

Solution:
#include <iostream>
#include <string>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
#include <iomanip>
#include <fstream>
#include <thread>

using namespace std;

#define REP(i, n) for(ll i = 0;i < n;i++)
#define REPR(i, n) for(ll i = n;i >= 0;i--)
#define FOR(i, m, n) for(ll i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define REPO(i, n) for(ll i = 1;i <= n;i++)
#define ll long long
#define INF (ll)1 << 60
#define MINF (-1 * INF)
#define ALL(n) n.begin(),n.end()
#define MOD (ll)1000000007
#define P pair<ll, ll>


ll n, f, ans[310];
vector<ll> r, b;

bool solve(int key) { //条件判定
	cout << "?";
	FOR(i, key, key + n) {
		cout << " " << i + 1;
	}
	cout << endl;
	string res;
	ll a = 0;
	cin >> res;
	if (res == "Blue")a = 1;
	return (f != a);
}

int nibutan() { //めぐる式

	int ng = 0; //最大値ならs.size()
	int ok = n; // 最大値なら0

	while (abs(ok - ng) > 1) {
		int mid = (ok + ng) / 2;

		if (solve(mid)) ok = mid;
		else ng = mid;
	}
	return ok; //満たさない最大ならng
}

int main() {
	cin >> n;
	cout << "?";
	REPO(i, n) {
		cout << " " << i;
	}
	cout << endl;
	string res;
	cin >> res;
	if (res == "Blue")f = 1;
	ll st = nibutan();
	REP(i, n * 2) {
		if (i < st or st + n - 1 <= i) {
			cout << "?";
			cout << " " << i + 1;
			FOR(j, st, st + n - 1) {
				cout << " " << j + 1;
			}
			cout << endl;
			cin >> res;
			if (res == "Blue") {
				ans[i] = 1;
				b.push_back(i);
			}
			else {
				r.push_back(i);
			}
		}
	}
	FOR(i, st, st + n - 1) {
		cout << "?";
		cout << " " << i + 1;
		REP(i, n / 2)cout << " " << r[i] + 1;
		REP(i, n / 2)cout << " " << b[i] + 1;
		cout << endl;
		cin >> res;
		if (res == "Blue") {
			ans[i] = 1;
		}
	}
	cout << "! ";
	REP(i, 2 * n) {
		if (ans[i] == 0)cout << "R";
		else cout << "B";
	}
	cout << endl;
}