#include #include #include #define MAXN 100000 using namespace std; template void Read(T &x){ char c; bool f(0); while(c=getchar(),c!=EOF){ if(c=='-') f=1; else if(c>='0'&&c<='9'){ x=c-'0'; while(c=getchar(),c>='0'&&c<='9') x=x*10+c-'0'; ungetc(c,stdin); if(f) x=-x; return; } } } int n,cnt[MAXN+10],a[MAXN+10],diff,cnt2[MAXN+10],T; void read(){ Read(n); int i; for(i=1;i<=n;i++) Read(a[i]); } bool check(int len){ int i; memset(cnt,0,sizeof cnt); memset(cnt2,0,sizeof cnt2); diff=0; for(i=1;i<=len;i++){ cnt[a[i]]++; cnt2[a[i]]++; } for(i=len+1;i<=n;i++){ if(cnt2[a[i-len]]==cnt[a[i-len]]) diff++; if(cnt2[a[i]]==cnt[a[i]]) diff++; cnt2[a[i-len]]--,cnt2[a[i]]++; if(cnt2[a[i-len]]==cnt[a[i-len]]) diff--; if(cnt2[a[i]]==cnt[a[i]]) diff--; if(i%len==0) if(diff) break; } return i>n; } void solve(){ int i,j; bool flag=0; for(i=1;i<=n;i++) if(n%i==0) if(check(i)) break; for(j=i;j<=n;j++) if(j%i==0&&n%j==0){ if(!flag) flag=1; else putchar(' '); printf("%d",j); } puts(""); } int main() { Read(T); while(T--){ read(); solve(); } }