#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int T, n, x, y;
char ans[N];
int main() {
  scanf("%d", &T);
  while (T--) {
    scanf("%d", &n);
    memset(ans, 0, sizeof ans);
    puts("? HC");
    fflush(stdout);
    scanf("%d", &x);
    for (int i = 1; i <= x; i++) {
      scanf("%d", &y);
      ans[y] = 'H';
      ans[y + 1] = 'C';
    }
    puts("? CO");
    fflush(stdout);
    scanf("%d", &x);
    for (int i = 1; i <= x; i++) {
      scanf("%d", &y);
      ans[y] = 'C';
      ans[y + 1] = 'O';
    }
    puts("? HO");
    fflush(stdout);
    scanf("%d", &x);
    for (int i = 1; i <= x; i++) {
      scanf("%d", &y);
      ans[y] = 'H';
      ans[y + 1] = 'O';
    }
    if (n == 4 && ans[2] && ans[3]) {
      if (!ans[1]) {
        printf("? ");
        putchar('O');
        for (int i = 2; i < n; i++) printf("%c", ans[i]);
        puts("");
        fflush(stdout);
        scanf("%d", &x);
        for (int i = 1; i <= x; i++) {
          scanf("%d", &y);
          if (y == 1) ans[1] = 'O';
        }
        printf("? ");
        putchar('H');
        for (int i = 2; i < n; i++) printf("%c", ans[i]);
        puts("");
        fflush(stdout);
        scanf("%d", &x);
        for (int i = 1; i <= x; i++) {
          scanf("%d", &y);
          if (y == 1) ans[1] = 'H';
        }
        if (!ans[1]) ans[1] = 'C';
      }
      if (!ans[n]) {
        printf("? ");
        for (int i = 1; i < n; i++) printf("%c", ans[i]);
        putchar('C');
        puts("");
        fflush(stdout);
        scanf("%d", &x);
        for (int i = 1; i <= x; i++) {
          scanf("%d", &y);
          if (y == 1) ans[n] = 'C';
        }
        printf("? ");
        for (int i = 1; i < n; i++) printf("%c", ans[i]);
        putchar('H');
        puts("");
        fflush(stdout);
        scanf("%d", &x);
        for (int i = 1; i <= x; i++) {
          scanf("%d", &y);
          if (y == 1) ans[n] = 'H';
        }
        if (!ans[n]) ans[n] = 'O';
      }
      printf("! ");
      puts(ans + 1);
      fflush(stdout);
      scanf("%d", &x);
      if (!x) return 0;
      continue;
    }
    puts("? HH");
    fflush(stdout);
    scanf("%d", &x);
    for (int i = 1; i <= x; i++) {
      scanf("%d", &y);
      ans[y] = 'H';
      ans[y + 1] = 'H';
    }
    puts("? OO");
    fflush(stdout);
    scanf("%d", &x);
    for (int i = 1; i <= x; i++) {
      scanf("%d", &y);
      ans[y] = 'O';
      ans[y + 1] = 'O';
    }
    for (int i = 2; i < n; i++)
      if (!ans[i]) ans[i] = 'C';
    if (n == 4 && !ans[1] && !ans[4]) {
      puts("? CCC");
      fflush(stdout);
      scanf("%d", &x);
      for (int i = 1; i <= x; i++) {
        scanf("%d", &y);
        ans[y] = 'C';
        ans[y + 1] = 'C';
        ans[y + 2] = 'C';
      }
      if (!ans[1]) ans[1] = 'O';
      if (!ans[n]) ans[n] = 'H';
    }
    if (!ans[1]) {
      printf("? ");
      putchar('O');
      for (int i = 2; i < n; i++) printf("%c", ans[i]);
      puts("");
      fflush(stdout);
      scanf("%d", &x);
      for (int i = 1; i <= x; i++) {
        scanf("%d", &y);
        if (y == 1) ans[1] = 'O';
      }
      if (!ans[1]) ans[1] = 'C';
    }
    if (!ans[n]) {
      printf("? ");
      for (int i = 1; i < n; i++) printf("%c", ans[i]);
      putchar('C');
      puts("");
      fflush(stdout);
      scanf("%d", &x);
      for (int i = 1; i <= x; i++) {
        scanf("%d", &y);
        if (y == 1) ans[n] = 'C';
      }
      if (!ans[n]) ans[n] = 'H';
    }
    printf("! ");
    puts(ans + 1);
    fflush(stdout);
    scanf("%d", &x);
    if (!x) return 0;
  }
}
