Abelian Period

Accepts: 288
Submissions: 984
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 262144/131072 K (Java/Others)
Problem Description
Let $S$ be a number string, and $occ(S,x)$ means the times that number $x$ occurs in $S$. i.e. $S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1$. String $u,w$ are matched if for each number $i$, $occ(u,i)=occ(w,i)$ always holds. i.e. $(1,2,2,1,3)\approx(1,3,2,1,2)$. Let $S$ be a string. An integer $k$ is a full Abelian period of $S$ if $S$ can be partitioned into several continous substrings of length $k$, and all of these substrings are matched with each other. Now given a string $S$, please find all of the numbers $k$ that $k$ is a full Abelian period of $S$.
Input
The first line of the input contains an integer $T(1\leq T\leq10)$, denoting the number of test cases. In each test case, the first line of the input contains an integer $n(n\leq 100000)$, denoting the length of the string. The second line of the input contains $n$ integers $S_1,S_2,S_3,...,S_n(1\leq S_i\leq n)$, denoting the elements of the string.
Output
For each test case, print a line with several integers, denoting all of the number $k$. You should print them in increasing order.
Sample Input
2
6
5 4 4 4 5 4
8
6 5 6 5 6 5 5 6
Sample Output
3 6
2 4 8