Problem D
Ordered Problem Set
You are running a programming contest that features $n$ problems of distinct difficulties. You wish to announce ahead of time that the problems are ordered in such a way that, if the problems are divided into $k$ sections numbered $1$ through $k$, each with exactly $\frac{n}{k}$ problems, and problem $p$ is assigned to section $\left\lceil \frac{kp}{n} \right\rceil $, then for every pair of sections $i$ and $j$ with $i < j$, every problem in section $i$ is easier than every problem in section $j$. Note that $k$ must be greater than $1$ and be a factor of $n$.
However, you have just sent your problems to the printer so the order cannot be changed. For what values of $k$ would this claim be true?
Input
The first line of input contains a single integer $n$ ($2 \le n \le 50$), which is the number of problems.
Each of the next $n$ lines contains a single integer $d$ ($1 \le d \le n$). These are the difficulties for the problems in the order that they appear in the problem set. The difficulties are distinct. The problem with difficulty $1$ is the easiest problem and the problem with difficulty $n$ is the hardest problem.
Output
Output a list of integers, one per line. The integers are all valid values of $k$ in increasing order. If no such values exist, output $-1$.
Sample Input 1 | Sample Output 1 |
---|---|
6 1 3 2 4 5 6 |
2 |
Sample Input 2 | Sample Output 2 |
---|---|
6 1 2 3 4 5 6 |
2 3 6 |
Sample Input 3 | Sample Output 3 |
---|---|
6 6 5 4 3 2 1 |
-1 |