#include <bits/stdc++.h>
#define VuDucNam ios_base::sync_with_stdio(false);
#define Lop9a6 cin.tie(NULL);
#define THCSPhamVanDong cout.tie(NULL);
#define ll long long
#define el cout << '\n'
#define sz(a) (ll) a.size()
#define all(a) a.begin(), a.end()
#define fi first
#define se second
#define fill(a, x) memset(a, x, sizeof(a))
#define file(name)                         \
    if (fopen(name ".inp", "r"))           \
    {                                      \
        freopen(name ".inp", "r", stdin);  \
        freopen(name ".out", "w", stdout); \
    }
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"

using namespace std;

const int N6 = 1e6 + 5;
const ll MOD = 1e9 + 7;
const ll inf = LLONG_MAX;

int n,a[105];

void solve()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    sort(a + 1, a + n + 1);
    int G = a[2] - a[1];
    for (int i = 3; i <= n; i++)
        G = __gcd(G, a[i] - a[1]);
    set<int> div;
    for (int i = 1; i <= sqrt(G); i++)
    {
        if(G % i == 0)
        {
            if(i > 1) div.insert(i);
            if(G / i > 1) div.insert(G / i);
        }
    }
    if(div.empty()) cout << -1;
    else for (auto u : div) cout << u << " ";
}

int main()
{
    VuDucNam Lop9a6 THCSPhamVanDong
    // file();
    solve();
    RUNTIME;
    return 0;
}
