import
java.io.*;
import
java.util.*;
class
GFG {
static
final
int
MAX =
200003
;
static
int
d, n, mx, t, x;
static
int
[] arr, temp, diff;
public
static
void
find(
int
[] a,
int
n)
{
mx =
0
;
arr =
new
int
[MAX];
diff =
new
int
[MAX];
for
(
int
i =
0
; i < n; i++) {
arr[a[i]] =
1
;
mx = Math.max(mx, a[i]);
}
temp = Arrays.copyOf(arr, arr.length);
for
(d =
1
; d <= mx; d++) {
temp = shiftLeft(temp);
for
(
int
i =
0
; i < MAX; i++) {
diff[d] = diff[d] | (arr[i] & temp[i]);
}
}
d = n;
while
(d <= mx) {
boolean
found =
true
;
for
(
int
j = d; j < mx; j += d) {
if
(diff[j] !=
0
) {
found =
false
;
break
;
}
}
if
(found) {
System.out.println(d);
return
;
}
d +=
1
;
}
}
private
static
int
[] shiftLeft(
int
[] arr)
{
int
[] result =
new
int
[arr.length];
for
(
int
i =
1
; i < arr.length; i++) {
result[i -
1
] = arr[i];
}
result[result.length -
1
] =
0
;
return
result;
}
public
static
void
main(String[] args)
{
int
[] A = {
11
,
20
,
13
};
int
N = A.length;
find(A, N);
}
}