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 <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <cctype>

#include <algorithm>
#include <random>
#include <bitset>
#include <queue>
#include <functional>
#include <set>
#include <map>
#include <vector>
#include <chrono>
#include <iostream>
#include <limits>
#include <numeric>

#define LOG(FMT...) fprintf(stderr, FMT)

using namespace std;

typedef long long ll;
typedef unsigned long long ull;

// mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

template <class T>
istream& operator>>(istream& is, vector<T>& v) {
  for (T& x : v)
    is >> x;
  return is;
}

template <class T>
ostream& operator<<(ostream& os, const vector<T>& v) {
  if (!v.empty()) {
    os << v.front();
    for (int i = 1; i < v.size(); ++i)
      os << ' ' << v[i];
  }
  return os;
}

char ask(const vector<int>& A) {
  cout << "? " << A << endl;
  string s;
  cin >> s;
  return s[0];
}

int main() {
  int N;
  cin >> N;

  vector<int> A(N);
  iota(A.begin(), A.end(), 1);
  char lc = ask(A);
  iota(A.begin(), A.end(), N + 1);
  char rc = ask(A);
  int l = 1, r = N + 1;
  vector<char> ans(N * 2 + 1);
  while (r - l > 1) {
    int mid = (l + r) >> 1;
    iota(A.begin(), A.end(), mid);
    if (ask(A) == lc)
      l = mid;
    else
      r = mid;
  }
  ans[l] = lc;
  ans[l + N] = rc;
  iota(A.begin(), A.end(), l);
  for (int i = 1; i < l; ++i) {
    A[0] = i;
    ans[i] = ask(A);
  }
  for (int i = l + N + 1; i <= N * 2; ++i) {
    A[0] = i;
    ans[i] = ask(A);
  }
  iota(A.begin(), A.end(), l + 1);
  for (int i = l + 1; i < l + N; ++i) {
    auto it = find(A.begin(), A.end(), i);
    *it = l;
    ans[i] = ask(A) == 'R' ? 'B' : 'R';
    *it = i;
  }
  cout << "! ";
  for (int i = 1; i <= N * 2; ++i)
    cout << ans[i];
  cout << endl;

  return 0;
}