#include <bits/stdc++.h>
using namespace std;
namespace FFT {
const int MAX = 1 << 20;
int N;
complex<double> omega[MAX];
complex<double> a1[MAX], a2[MAX];
complex<double> z1[MAX], z2[MAX];
void fft(complex<double> *a, complex<double> *z, int m = N) {
  if (m == 1) {
    z[0] = a[0];
  } else {
    int s = N / m;
    m /= 2;
    fft(a, z, m);
    fft(a + s, z + m, m);
    for (int i = (0); i < (m); i++) {
      complex<double> c = omega[s * i] * z[m + i];
      z[m + i] = z[i] - c;
      z[i] += c;
    }
  }
}
void mult(long long int *a, long long int *b, long long int *c, int len) {
  N = 2 * len;
  while (N & (N - 1)) ++N;
  assert(N <= MAX);
  for (int i = (0); i < (N); i++) a1[i] = 0;
  for (int i = (0); i < (N); i++) a2[i] = 0;
  for (int i = (0); i < (len); i++) a1[i] = a[i];
  for (int i = (0); i < (len); i++) a2[i] = b[i];
  for (int i = (0); i < (N); i++) omega[i] = polar(1.0, 2 * M_PI / N * i);
  fft(a1, z1, N);
  fft(a2, z2, N);
  for (int i = (0); i < (N); i++) omega[i] = complex<double>(1, 0) / omega[i];
  for (int i = (0); i < (N); i++) a1[i] = z1[i] * z2[i] / complex<double>(N, 0);
  fft(a1, z1, N);
  for (int i = (0); i < (2 * len); i++) c[i] = round(z1[i].real());
}
}  // namespace FFT
const int MAXN = 5 * 1e5 + 10;
int n;
string s;
long long int a[MAXN], b[MAXN], c[MAXN];
int ispis[MAXN];
int main() {
  int test;
  scanf("%d", &test);
  for (int br = (0); br < (test); br++) {
    scanf("%d", &n);
    cin >> s;
    for (int i = (0); i < (n); i++) a[i] = b[i] = ispis[i] = 0;
    for (int i = (0); i < (n); i++) {
      if (s[i] == 'V')
        a[i] = 1;
      else if (s[i] == 'K')
        b[n - i - 1] = 1;
    }
    FFT::mult(a, b, c, n);
    for (int i = (0); i < (2 * n - 1); i++)
      if (c[i] != 0) {
        if (i < n - 1)
          ispis[n - 1 - i] = 1;
        else if (i > n - 1)
          ispis[i - n + 1] = 1;
      }
    for (int i = 1; i < n; i++)
      for (int j = i; j < n; j += i)
        if (ispis[j]) ispis[i] = 1;
    vector<int> rj;
    for (int i = (1); i < (n); i++)
      if (!ispis[i]) rj.push_back(i);
    rj.push_back(n);
    printf("%d\n", rj.size());
    for (int i = (0); i < ((int)rj.size()); i++) printf("%d ", rj[i]);
    printf("\n");
  }
  return 0;
}
