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>
using i64 = long long;

int ask(const std::deque<int> &v) {
    printf("? ");
    for (int a : v) printf("%d ", a);
    printf("\n");
    fflush(stdout);

    char buf[10];
    scanf("%s", buf);
    if (buf[0] == '-') exit(0);
    return buf[0] == 'R';
}

int main() {
    int n;
    scanf("%d", &n);

    int first = -1;
    {
        std::deque<int> q;
        for (int i = 1; i <= n; i++) q.push_back(i);
        first = ask(q);
    }

    int l = 1, r = n + 1;
    while (r - l > 1) {
        int k = (l + r) / 2;
        std::deque<int> q;
        for (int i = 0; i < n; i++) q.push_back(k + i);
        int res = ask(q);
        if (res == first) l = k;
        else r = k;
    }

    std::deque<int> q;
    for (int i = 0; i + 1 < n; i++) q.push_back(r + i);

    std::vector<int> ret(2 * n + 1, -1);
    for (int i = 1; i < r; i++) {
        q.push_back(i);
        ret[i] = ask(q) == first;
        q.pop_back();
    }
    for (int i = l + n; i <= 2 * n; i++) {
        q.push_back(i);
        ret[i] = ask(q) == first;
        q.pop_back();
    }

    q.clear();
    int same = 0, diff = 0;
    for (int i = 1; i <= 2 * n; i++) {
        if (ret[i] < 0) continue;
        if (ret[i] && same < n / 2) {
            q.push_back(i);
            same++;
        } else if (!ret[i] && diff < n / 2) {
            q.push_back(i);
            diff++;
        }
    }

    for (int i = r; i < l + n; i++) {
        q.push_back(i);
        ret[i] = ask(q) == first;
        q.pop_back();
    }

    printf("! ");
    char sc = first ? 'R' : 'B', dc = first ? 'B' : 'R';
    for (int i = 1; i <= 2 * n; i++) printf("%c", ret[i] ? sc : dc);
    printf("\n");
    fflush(stdout);

    return 0;
}