import
java.util.*;
class
Solution
{
static
final
int
MAXN=
100001
;
static
int
spf[]=
new
int
[MAXN];
static
void
sieve()
{
spf[
1
] =
1
;
for
(
int
i =
2
; i < MAXN; i++)
spf[i] = i;
for
(
int
i =
4
; i < MAXN; i +=
2
)
spf[i] =
2
;
for
(
int
i =
3
; i * i < MAXN; i++) {
if
(spf[i] == i) {
for
(
int
j = i * i; j < MAXN; j += i)
if
(spf[j] == j)
spf[j] = i;
}
}
}
static
Vector<Integer> getFactorization(
int
x)
{
Vector<Integer> ret=
new
Vector<Integer>();
while
(x !=
1
) {
int
temp = spf[x];
ret.add(temp);
while
(x % temp ==
0
)
x = x / temp;
}
return
ret;
}
static
int
maxElement(
int
A[],
int
n)
{
sieve();
Map<Integer, Integer> m=
new
HashMap<Integer, Integer>();
for
(
int
j =
0
; j < n; ++j) {
Vector<Integer> p = getFactorization(A[j]);
for
(
int
i =
0
; i < p.size(); i++)
m.put(p.get(i),m.get(p.get(i))==
null
?
0
:m.get(p.get(i))+
1
);
}
int
cnt =
0
, ans =
10000000
;
Set< Map.Entry< Integer,Integer> > st = m.entrySet();
for
(Map.Entry< Integer,Integer> me:st)
{
if
(me.getValue() >= cnt) {
cnt = me.getValue();
if
(ans > me.getKey())
ans = me.getKey() ;
else
ans = ans;
}
}
return
ans;
}
public
static
void
main(String args[])
{
int
A[] = {
2
,
5
,
10
};
int
n =A.length;
System.out.print(maxElement(A, n));
}
}