#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
#include <deque>
#include <set>
#include <map>
#include <iomanip>
#include <cmath>
using namespace std;
const int inf = 1061109567;
set <int> val;
set <int, greater<int>> s;
int n;
int main()
{
cin >> n;
for (int i = 1; i <= n; ++ i)
{
int x;
cin >> x;
val.insert(x);
}
for (auto i = val.begin(); i != val.end(); ++ i)
{
auto j = ++ i;
i --;
for (; j != val.end(); ++ j) s.insert(*i % *j);
}
if (s.size() < 2)
{
cout << -1 << endl;
exit(0);
}
auto i = s.begin();
cout << *(++ i) << endl;
return 0;
}