program majority_of_balls
  implicit none
  integer :: n, f, q(300) = 0, a(200) = 0, i, j, l = 1, r, m
  character(32) :: fmt = 'i0'
  character(100) :: s = ''
  read(5,*) n
  if (n > 1) then
    write(fmt,*) n - 1
    fmt = 'i0,' // trim(fmt) // '(x,i0)'
  end if
  q(1:2 * n) = [(i, i = 1, 2 * n)]
  q(2 * n + 1:3 * n) = q(1:n)
  f = query(q(1:n))
  r = n + 1
  do while (r - l > 1)
    m = (l + r) / 2
    if (query(q(m:m + n - 1)) == f) then
      l = m
    else
      r = m
    end if
  end do
  a(l) = f
  a(l + n) = -f
  do i = l + 1, l + n - 1
    a(i) = query([i, q(l + n + 1:l + 2 * n - 1)])
  end do
  do i = l + n + 1, l + 2 * n - 1
    a(q(i)) = query([q(i), q(l + 1:l + n - 1)])
  end do
  do i = 1, 2 * n
    s(i:i) = merge('R', 'B', a(i) == 1)
  end do
  write(6,'("! ",a)') trim(s)
  flush(6)
contains
  integer function query(q) result(res)
    integer, intent(in) :: q(:)
    character(1) :: judge
    write(6,'("? "'//trim(fmt)//')') q
    flush(6)
    read(5,*) judge
    res = merge(1, -1, judge == 'R')
  end
end program majority_of_balls