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 <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define rep1(i,n) for(int i=1;i<=(int)(n);i++)
#define all(c) c.begin(),c.end()
#define pb push_back
#define fs first
#define sc second
#define chmin(x,y) x=min(x,y)
#define chmax(x,y) x=max(x,y)
using namespace std;
template<class S,class T> ostream& operator<<(ostream& o,const pair<S,T> &p){
	return o<<"("<<p.fs<<","<<p.sc<<")";
}
template<class T> ostream& operator<<(ostream& o,const vector<T> &vc){
	o<<"{";
	for(const T& v:vc) o<<v<<",";
	o<<"}";
	return o;
}
using ll = long long;
template<class T> using V = vector<T>;
template<class T> using VV = vector<vector<T>>;
constexpr ll TEN(int n) { return (n == 0) ? 1 : 10 * TEN(n-1); }

#ifdef LOCAL
#define show(x) cerr << "LINE" << __LINE__ << " : " << #x << " = " << (x) << endl
#define dump(x) cerr << "LINE" << __LINE__ << " : " << #x << " = {";  \
	for(auto v: x) cerr << v << ","; cerr << "}" << endl;
#else
#define show(x) true
#define dump(x) true
#endif

int N;
bool query(V<int> v){
	cout << "?";
	for(int x: v) cout << " " << x+1;
	cout << endl;
	string T; cin >> T;
	return T == "Red";
}
bool query_substr(int x){
	V<int> v(N); rep(i,N) v[i] = x+i;
	return query(v);
}

int main(){
	cin >> N;
	int L = 0, R = N;
	bool Lans = query_substr(0);
	while(R-L>1){
		int m = (L+R)/2;
		if(query_substr(m) == Lans){
			L = m;
		}else{
			R = m;
		}
	}
	// L: Lans, R: !Lans
	int o = L, x = L+N;
	string s(N+N,'?');
	s[o] = 'R', s[x] = 'B';
	for(int i=L+1;i<L+N;i++){
		V<int> v;
		for(int x=L;x<=L+N;x++) if(x != i) v.pb(x);
		s[i] = (query(v) == Lans) ? 'B' : 'R';
	}
	V<int> other;
	rep(i,L) other.pb(i);
	for(int i=L+N;i<N+N;i++) other.pb(i);
	for(int i: other){
		V<int> v = {i};
		for(int x=L+1;x<L+N;x++) v.pb(x);
		s[i] = (query(v) == Lans) ? 'R' : 'B';
	}
	if(!Lans){
		for(char& c: s) c ^= 'R'^'B';
	}
	cout << "! " << s << endl;
}