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:
/* cerberus97 - Hanit Banga */

#include <iostream>
#include <iomanip>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <vector>
#include <algorithm>
#include <numeric>

using namespace std;

#define pb push_back
#define fast_cin() ios_base::sync_with_stdio(false); cin.tie(NULL)

typedef long long ll;
typedef long double ld;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;

const int N = 300;

char ans[N];
bool known[N];

vector<int> get_range(int l, int r);
char range_query(vector<int> v);
void sval(int i, char c);

int main() {
	fast_cin();
	int n; cin >> n;
	char cl = range_query(get_range(1, n));
	char cr = 'R' ^ 'B' ^ cl;
	int lo = 1, hi = n + 1;
	while (lo < hi - 1) {
		int mid = (lo + hi) / 2;
		char c = range_query(get_range(mid, mid + n - 1));
		if (c == cl) {
			lo = mid;
		} else {
			hi = mid;
		}
	}
	int l = lo, r = lo + n;
	sval(l, cl);
	sval(r, cr);
	// cout << l << ' ' << r << endl;
	for (int i = 1; i <= 2 * n; ++i) {
		if (known[i]) {
			continue;
		} else if (i < l or i > r) {
			vector<int> v = get_range(l + 1, r - 1);
			v.pb(i);
			sval(i, range_query(v));
		} else {
			// cout << "guessing " << i << endl;
			vector<int> v = get_range(l, r - 1);
			v[i - l] = r;
			sval(i, 'R' ^ 'B' ^ range_query(v));
		}
	}
	cout << "! ";
	ans[2 * n + 1] = 0;
	cout << (ans + 1) << endl;
}

vector<int> get_range(int l, int r) {
	vector<int> range(r - l + 1);
	iota(range.begin(), range.end(), l);
	return range;
}

char range_query(vector<int> v) {
	cout << "? ";
	for (auto &i : v) {
		cout << i << ' ';
	}
	cout << endl;
	string s; cin >> s;
	return s[0];
}

void sval(int i, char c) {
	known[i] = true;
	ans[i] = c;
}