Lost Array

Bajtek, known for his unusual gifts, recently got an integer array $x_0, x_1, \ldots, x_{k-1}$.

Unfortunately, after a huge array-party with his extraordinary friends, he realized that he’d lost it. After hours spent on searching for a new toy, Bajtek found on the arrays producer’s website another array $a$ of length $n + 1$. As a formal description of $a$ says, $a_0 = 0$ and for all other $i$ ($1 \le i \le n$) $a_i = x_{(i-1)\bmod k} + a_{i-1}$, where $p \bmod q$ denotes the remainder of division $p$ by $q$.

For example, if the $x = [1, 2, 3]$ and $n = 5$, then:

  • $a_0 = 0$,
  • $a_1 = x_{0\bmod 3}+a_0=x_0+0=1$,
  • $a_2 = x_{1\bmod 3}+a_1=x_1+1=3$,
  • $a_3 = x_{2\bmod 3}+a_2=x_2+3=6$,
  • $a_4 = x_{3\bmod 3}+a_3=x_0+6=7$,
  • $a_5 = x_{4\bmod 3}+a_4=x_1+7=9$.

So, if the $x = [1, 2, 3]$ and $n = 5$, then $a = [0, 1, 3, 6, 7, 9]$.

Now the boy hopes that he will be able to restore $x$ from $a$! Knowing that $1 \le k \le n$, help him and find all possible values of $k$ — possible lengths of the lost array.

Input

The first line contains exactly one integer $n$ ($1 \le n \le 1000$) — the length of the array $a$, excluding the element $a_0$.

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le 10^6$).

Note that $a_0$ is always $0$ and is not given in the input.

Output

The first line of the output should contain one integer $l$ denoting the number of correct lengths of the lost array.

The second line of the output should contain $l$ integers — possible lengths of the lost array in increasing order.

Examples

input

5
1 2 3 4 5

output

5
1 2 3 4 5

input

5
1 3 5 6 8

output

2
3 5

input

3
1 5 3

output

1
3

Note

In the first example, any $k$ is suitable, since $a$ is an arithmetic progression.

Possible arrays $x$:

  • $[1]$
  • $[1, 1]$
  • $[1, 1, 1]$
  • $[1, 1, 1, 1]$
  • $[1, 1, 1, 1, 1]$

In the second example, Bajtek’s array can have three or five elements.

Possible arrays $x$:

  • $[1, 2, 2]$
  • $[1, 2, 2, 1, 2]$

For example, $k = 4$ is bad, since it leads to $6 + x_0 = 8$ and $0 + x_0 = 1$, which is an obvious contradiction.

In the third example, only $k = n$ is good.

Array $[1, 4, -2]$ satisfies the requirements.

Note that $x_i$ may be negative.

Solution:

#include <bits/stdc++.h>

using namespace std;

int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
vector<int> a(n + 1);
a[0] = 0;
for (int i = 1; i <= n; i++) {
    cin >> a[i];
}
vector<int> res;
for (int k = 1; k <= n; k++) {
    int ok = 1;
    for (int i = k + 1; i <= n; i++) {
      if (a[i] - a[i - 1] != a[i - k] - a[i - k - 1]) {
        ok = 0;
        break;
      }
    }
    if (ok) {
      res.push_back(k);
    }
  }
  cout << (int) res.size() << '\n';
  for (int i = 0; i < (int) res.size(); i++) {
    if (i > 0) {
cout << " ";
    }
    cout << res[i];
  }
  cout << '\n';
  return 0;
}