#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int sum = 0;
  char c = getchar();
  bool f = 0;
  while (c < '0' || c > '9') {
    if (c == '-') f = 1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  if (f) return -sum;
  return sum;
}
const int U = 1048576;
const int N = U + 233;
const double pi = acos(-1.0);
struct C {
  double x, y;
  C(double _ = 0, double __ = 0) {
    x = _;
    y = __;
  }
  inline C operator+(const C &b) { return C(x + b.x, y + b.y); }
  inline C operator-(const C &b) { return C(x - b.x, y - b.y); }
  inline C operator*(const C &b) {
    return C(x * b.x - y * b.y, x * b.y + y * b.x);
  }
} A[N], W[N];
int n, t, i, L, R[N], X[N], Y[N], T[N];
char s[N], RA, RB;
bool ban[N];
inline void FFT(C *a, int n, bool TP) {
  int i, j, k, p;
  C w, a0, wa1;
  for (i = 0; i < n; i++)
    if (i < R[i]) swap(a[i], a[R[i]]);
  for (i = 1; i < n; i <<= 1)
    for (p = (i << 1), j = 0; j < n; j += p)
      for (k = 0; k < i; k++) {
        w = W[(U / p) * k];
        if (TP) w.y = -w.y;
        a0 = a[j + k];
        wa1 = w * a[j + k + i];
        a[j + k] = a0 + wa1;
        a[j + k + i] = a0 - wa1;
      }
}
inline void work() {
  for (i = 0; i < t; i++) X[i] = Y[i] = 0;
  for (i = 1; i <= n; i++) X[i] = (s[i] == RA);
  for (i = 1; i <= n; i++) Y[i] = (s[n - i + 1] == RB);
  for (i = 0; i < t; i++) A[i] = C((X[i] + Y[i]) / 2.0, (X[i] - Y[i]) / 2.0);
  FFT(A, t, 0);
  for (i = 0; i < t; i++) A[i] = A[i] * A[i];
  FFT(A, t, 1);
  for (i = 1; i <= n; i++) T[i] += (int)(A[n - i + 1].x / t + 0.5);
}
int main() {
  int i, j, k, CS = read();
  for (i = 0; i < U; i++) W[i] = C(cos(2 * pi * i / U), sin(2 * pi * i / U));
  while (CS--) {
    n = read();
    scanf("%s", s + 1);
    for (L = 0, t = 1; t <= n * 2; t <<= 1, L++)
      ;
    for (i = 0; i < t; i++) R[i] = (R[i >> 1] >> 1) | ((i & 1) << (L - 1));
    for (i = 1; i <= n; i++) T[i] = 0, ban[i] = 0;
    RA = 'V';
    RB = 'K';
    work();
    RA = 'K';
    RB = 'V';
    work();
    for (k = 0, i = n; i >= 1; i--) {
      if (T[i]) ban[i] = 1;
      for (j = i + i; j <= n; j += i) ban[i] |= ban[j];
      if (!ban[i]) k++;
    }
    printf("%d\n", k);
    for (i = 1; i <= n; i++)
      if (!ban[i]) printf("%d ", i);
    puts("");
  }
  return 0;
}
