#include #include #include #include #define M 100005 using namespace std; int T,n,m; int a[M],sum[M],ans[M],sum2[M]; int in() { int t=0;char ch=getchar(); while (ch>'9'||ch<'0') ch=getchar(); while (ch>='0'&&ch<='9') t=(t<<1)+(t<<3)+ch-48,ch=getchar(); return t; } bool solve(int x) { int t=0,tt; for (int i=1;i<=x;++i) { if (!sum[a[i]]) ++t; ++sum[a[i]]; } for (int i=x+1;i<=n;i+=x) { tt=0; for (int j=i;j<=i+x-1;++j) { ++sum2[a[j]]; if (sum2[a[j]]==sum[a[j]]) ++tt; } for (int j=i;j<=i+x-1;++j) --sum2[a[j]]; if (tt!=t) { for (int k=1;k<=x;++k) --sum[a[k]]; return 0; } } for (int i=1;i<=x;++i) --sum[a[i]]; return 1; } void work() { n=in(); memset(sum,0,sizeof(sum)); for (int i=1;i<=n;++i) a[i]=in(),++sum[a[i]]; m=n; for (int i=1;i<=n;++i) if (sum[i]) m=min(m,sum[i]); memset(sum,0,sizeof(sum)); for (int i=1;i*i<=n;++i) if (n%i==0) { if (n/i<=m&&solve(i)) ans[++ans[0]]=i; if (i<=m&&i*i!=n) if (solve(n/i)) ans[++ans[0]]=n/i; } sort(ans+1,ans+ans[0]+1); for (int i=1;i<=ans[0];++i) printf("%d%c",ans[i]," \n"[i==ans[0]]); ans[0]=0; } main() { for (T=in();T;--T) work(); }