#include <bits/stdc++.h>
using namespace std;
const int FFT_MAXN = 4002000;
const double Pi = 3.1415926535897932384626;
struct comp {
  double re, im;
  comp(double x = 0.0, double y = 0.0) : re(x), im(y) {}
  comp operator+(const comp& c) { return comp(re + c.re, im + c.im); }
  comp operator-(const comp& c) { return comp(re - c.re, im - c.im); }
  comp operator*(const comp& c) {
    return comp(re * c.re - im * c.im, re * c.im + im * c.re);
  }
  comp operator/(double dev) { return comp(re / dev, im / dev); }
} a[FFT_MAXN], b[FFT_MAXN];
int lim = 1, l = 0, r[FFT_MAXN];
void fft(comp* a, int dft) {
  for (int i = 0; i < lim; ++i)
    if (i < r[i]) swap(a[i], a[r[i]]);
  for (int mid = 1; mid < lim; mid <<= 1) {
    comp wn = comp(cos(Pi / mid), sin(Pi / mid) * dft);
    for (int len = mid << 1, s = 0; s < lim; s += len) {
      comp w(1, 0);
      for (int k = 0; k < mid; ++k, w = w * wn) {
        comp x = a[s + k], y = w * a[s + k + mid];
        a[s + k] = x + y;
        a[s + k + mid] = x - y;
      }
    }
  }
  if (dft == -1)
    for (int i = 0; i < lim; ++i) a[i] = a[i] / lim;
}
void fft_init(int degA, int degB) {
  lim = 1, l = 0;
  while (lim <= degA + degB) lim <<= 1, l++;
  for (int i = 0; i < lim; ++i) r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l - 1));
}
void fft_pmul(comp* A, int degA, comp* B, int degB) {
  fft_init(degA, degB);
  fft(A, 1);
  fft(B, 1);
  for (int i = 0; i < lim; ++i) A[i] = A[i] * B[i];
  fft(A, -1);
}
const int maxn = 1000500;
char s[maxn];
int n, p[maxn];
vector<int> ans;
void solve() {
  memset(a, 0, sizeof(comp) * (lim + 200));
  memset(b, 0, sizeof(comp) * (lim + 200));
  ans.clear();
  scanf("%d%s", &n, s + 1);
  for (int i = 1; i <= n; ++i) {
    if (s[i] == 'V')
      a[i] = comp(1, 0);
    else if (s[i] == 'K')
      b[n - i] = comp(1, 0);
  }
  fft_pmul(a, n, b, n);
  for (int i = 0; i <= 2 * n; ++i) p[i] = int(a[i].re + 0.5);
  for (int i = 1; i <= n; ++i) {
    bool find = false;
    for (int j = n % i; j <= 2 * n; j += i)
      if (p[j] != 0) {
        find = true;
        break;
      }
    if (!find) ans.push_back(i);
  }
  int sz = ans.size();
  printf("%d\n", sz);
  for (int i = 0; i < sz; ++i) printf("%d%c", ans[i], " \n"[i == sz - 1]);
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) solve();
  return 0;
}
