#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
struct Complex {
  double x, y;
  Complex() {}
  Complex(double X, double Y) { x = X, y = Y; }
  Complex operator+(Complex ano) const { return Complex(x + ano.x, y + ano.y); }
  Complex operator-(Complex ano) const { return Complex(x - ano.x, y - ano.y); }
  Complex operator*(Complex ano) const {
    return Complex(x * ano.x - y * ano.y, x * ano.y + y * ano.x);
  }
} f[2000005], g[2000005];
int n, lim = 1, rev[2000005], ans[2000005], spl[2000005];
char s[2000005], t[2000005];
void FFT(Complex *r, int flag) {
  for (int i = 0; i < lim; ++i)
    if (i < rev[i]) swap(r[i], r[rev[i]]);
  for (int p = 2; p <= lim; p <<= 1) {
    int len = p >> 1;
    Complex w =
        Complex(cos(2 * pi / p), flag ? sin(2 * pi / p) : -sin(2 * pi / p));
    for (int k = 0; k < lim; k += p) {
      Complex cn = Complex(1, 0);
      for (int i = k; i < k + len; ++i) {
        Complex dif = r[i + len] * cn;
        r[i + len] = r[i] - dif;
        r[i] = r[i] + dif;
        cn = cn * w;
      }
    }
  }
}
void Solve(char a, char b) {
  for (int i = 0; i < lim; ++i) f[i].x = f[i].y = g[i].x = g[i].y = 0;
  for (int i = 0; i < n; ++i)
    if (s[i] == a) g[i] = Complex(1, 0);
  for (int i = 0; i < n; ++i)
    if (t[i] == b) f[i] = Complex(1, 0);
  FFT(f, 1), FFT(g, 1);
  for (int i = 0; i < lim; ++i) f[i] = f[i] * g[i];
  FFT(f, 0);
  for (int i = 0; i < n; ++i) {
    int p = int(f[i].x / lim + 0.5);
    if (p) spl[i] = true;
  }
}
int main() {
  int T;
  scanf("%d", &T);
  while (T-- > 0) {
    scanf("%d", &n);
    scanf("%s", s);
    lim = 1;
    while (lim <= 2 * n) lim <<= 1;
    for (int i = 0; i < lim; ++i)
      rev[i] = (rev[i >> 1] >> 1) | ((i & 1) ? (lim >> 1) : 0);
    for (int i = 0; i < n; ++i) t[i] = s[n - i - 1];
    for (int i = 0; i <= n; ++i) ans[i] = spl[i] = 0;
    Solve('V', 'K'), Solve('K', 'V');
    for (int i = n - 1; ~i; --i)
      if (!spl[i]) ans[n - i - 1] = 1;
    ans[n] = 1;
    vector<int> Ans;
    for (int i = 1; i <= n; ++i) {
      for (int j = i + i; j <= n; j += i) ans[i] &= ans[j];
      if (ans[i]) Ans.push_back(i);
    }
    int up;
    printf("%d\n", up = int(Ans.size()));
    for (int i = 0; i < up; ++i) printf("%d ", Ans[i]);
    puts("");
  }
  return 0;
}
