#include<bits/stdc++.h>
#define long long int
using namespace std;
int c(int x,int y);
class ma
{
public:
ma();
void indat(int a[],int n);
void mod(int a[],int b[],int n,int s);
void qc(int b[],int s);
int tj(int b[],int s);
int js(int b[],int ss);
};
ma::ma()
{
}
void ma::indat(int a[],int n)
{
for(int i=0;i<n;i++)
{
cin >> a[i];
}
}
void ma::mod(int a[],int b[],int n,int s)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
b[s]=a[i]%a[j];
s++;
}
}
}
void ma::qc(int b[],int s)
{
for(int i=0;i<s;i++)
{
for(int j=0;j<s;j++)
{
if(b[i]==b[j]
&& i!=j)
{
b[j]=0;
}
}
}
}
int ma::tj(int b[],int s)
{
int f=0;
for(int i=0;i<s;i++)
{
if(b[i]!=0)
{
f++;
}
}
return f;
}
int ma::js(int b[],int ss)
{
sort(b,b+ss,c);
return b[1];
}
signed main()
{
ma *t=new ma();
int n,s=0,ss;
cin >> n;
int a[1000000],b[10000000];
t->indat(a,n);
t->mod(a,b,n,s);
t->qc(b,s);
ss=t->tj(b,s);
if(ss<2)
{
cout << "-1";
return 0;
}
cout << t->js(b,ss);
delete t;
return 0;
}
int c(int x,int y)
{
return x>y;
}