#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> l_l;
typedef pair<int, int> i_i;
template<class T>
inline bool chmax(T &a, T b) {
    if(a < b) {
        a = b;
        return true;
    }
    return false;
}

template<class T>
inline bool chmin(T &a, T b) {
    if(a > b) {
        a = b;
        return true;
    }
    return false;
}

const long double EPS = 1e-10;
const long long INF = 1e18;
const long double PI = acos(-1.0L);
//const ll mod = 1000000007;
ll N;
ll A[200100];
ll Zero = 0;

int main() {
    //cout.precision(10);
    cin.tie(0);
    ios::sync_with_stdio(false);
    cin >> N;
    for(int i = 0; i < N; i++) {
        cin >> A[i];
        if(A[i] == -1) {
            A[i] = 0;
            Zero++;
        }
    }
    if(Zero == N) {
        cout << -1 << endl;
        return 0;
    }
    ll g = 0;
    for(int i = 0; i < N; i++) {
        g = __gcd(g, A[i] * A[i]);
    }
    cout << g << endl;
    return 0;
}