#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;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgVnVEdWNOYW0gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiNkZWZpbmUgTG9wOWE2IGNpbi50aWUoTlVMTCk7CiNkZWZpbmUgVEhDU1BoYW1WYW5Eb25nIGNvdXQudGllKE5VTEwpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIHN6KGEpIChsbCkgYS5zaXplKCkKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmaWxsKGEsIHgpIG1lbXNldChhLCB4LCBzaXplb2YoYSkpCiNkZWZpbmUgZmlsZShuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpZiAoZm9wZW4obmFtZSAiLmlucCIsICJyIikpICAgICAgICAgICBcCiAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgZnJlb3BlbihuYW1lICIuaW5wIiwgInIiLCBzdGRpbik7ICBcCiAgICAgICAgZnJlb3BlbihuYW1lICIub3V0IiwgInciLCBzdGRvdXQpOyBcCiAgICB9CiNkZWZpbmUgVElNRSAoMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKQojZGVmaW5lIFJVTlRJTUUgY2VyciA8PCAiXG5SdW50aW1lOiAiIDw8IFRJTUUgPDwgInMuXG4iCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE42ID0gMWU2ICsgNTsKY29uc3QgbGwgTU9EID0gMWU5ICsgNzsKY29uc3QgbGwgaW5mID0gTExPTkdfTUFYOwoKaW50IG4sYVsxMDVdOwoKdm9pZCBzb2x2ZSgpCnsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGNpbiA+PiBhW2ldOwogICAgc29ydChhICsgMSwgYSArIG4gKyAxKTsKICAgIGludCBHID0gYVsyXSAtIGFbMV07CiAgICBmb3IgKGludCBpID0gMzsgaSA8PSBuOyBpKyspCiAgICAgICAgRyA9IF9fZ2NkKEcsIGFbaV0gLSBhWzFdKTsKICAgIHNldDxpbnQ+IGRpdjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHNxcnQoRyk7IGkrKykKICAgIHsKICAgICAgICBpZihHICUgaSA9PSAwKQogICAgICAgIHsKICAgICAgICAgICAgaWYoaSA+IDEpIGRpdi5pbnNlcnQoaSk7CiAgICAgICAgICAgIGlmKEcgLyBpID4gMSkgZGl2Lmluc2VydChHIC8gaSk7CiAgICAgICAgfQogICAgfQogICAgaWYoZGl2LmVtcHR5KCkpIGNvdXQgPDwgLTE7CiAgICBlbHNlIGZvciAoYXV0byB1IDogZGl2KSBjb3V0IDw8IHUgPDwgIiAiOwp9CgppbnQgbWFpbigpCnsKICAgIFZ1RHVjTmFtIExvcDlhNiBUSENTUGhhbVZhbkRvbmcKICAgIC8vIGZpbGUoKTsKICAgIHNvbHZlKCk7CiAgICBSVU5USU1FOwogICAgcmV0dXJuIDA7Cn0K