#include <iostream>
using
namespace
std;
int
hash[60];
int
n, x, ans, maxnum;
int
work(
int
now)
{
int
first, second, delta, i;
int
ok;
while
( ① && !hash[now])
++now;
if
(now > maxnum)
return
1;
first = now;
for
(second = first; second <= maxnum; second++)
if
(hash[second])
{
delta = ② ;
if
(first + delta * ③ > maxnum)
break
;
if
(delta == 0)
ok = ( ④ );
else
{
ok = 1;
for
(i = 0; i < ans; i++)
ok = ⑤ && (hash[first+delta*i]);
}
if
(ok)
{
for
(i = 0; i < ans; i++)
hash[first+delta*i]--;
if
(work(first))
return
1;
for
(i = 0; i < ans; i++)
hash[first+delta*i]++;
}
}
return
0;
}
int
main()
{
int
i;
memset
(hash, 0,
sizeof
(hash));
cin >> n;
maxnum = 0;
for
(i = 0; i < n; i++){
cin >> x;
hash[x]++;
if
(x > maxnum)
maxnum = x;
}
for
(ans = n; ans >= 1; ans--)
if
( n%ans==0 && ⑥ ) {
cout << ans << endl;
break
;
}
return
0;
}