#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

bool aks(vector<int> &a)
{
  putchar('?');
  for(int i=0;i<a.size();i++){
    printf(" %d",a[i]+1);
  }
  putchar('\n');
  fflush(stdout);
  char s[10];
  scanf("%s",s);
  return s[0]=='R';
}

int main()
{
  int n;
  scanf("%d",&n);
  vector<int> a(n);
  for(int i=0;i<n;i++){
    a[i]=i;
  }
  bool X=aks(a);
  int L=0,R=n;
  while(L+1<R){
    int m=(L+R)/2;
    for(int i=0;i<m;i++){
      a[i]=i+n;
    }
    for(int i=m;i<n;i++){
      a[i]=i;
    }
    bool Y=aks(a);
    if(X==Y){
      L=m;
    }
    else{
      R=m;
    }
  }
  int t=L;
  vector<int> ans(2*n);
  ans[t]=X;
  ans[n+t]=!X;
  for(int i=0;i<t;i++){
    a[t]=i;
    ans[i]=aks(a);
  }
  for(int i=n+t+1;i<2*n;i++){
    a[t]=i;
    ans[i]=aks(a);
  }
  vector<int> b(n);
  for(int i=0;i<t;i++){
    b[i]=i;
  }
  for(int i=t;i<n-1;i++){
    b[i]=i+n+1;
  }
  for(int i=t+1;i<n+t;i++){
    b[n-1]=i;
    ans[i]=aks(b);
  }
  printf("! ");
  for(int i=0;i<2*n;i++){
    printf("%c",ans[i]?'R':'B');
  }
  putchar('\n');
  fflush(stdout);
  return 0;
}
