program anum;
const fi='anum.inp';
fo='anum.out';
type mang=array[1..100] of integer;
var n:integer; A:mang;
{--------------}
procedure nhap;
var f:text;
begin
assign(f,fi);
reset(f);
read(f,n);
close(f);
end;
{-----------------}
function kt(n:integer):boolean;
var i,j,s:integer;
begin
j:=0;
for i:=1 to n-1 do
if n mod i=0 then
begin
inc(j);
A[j]:=i;
end;
kt:=false;
s:=0;
For i:=1 to n do s:=s+A[i];
if s>n then kt:=true;
end;
{-----------------}
procedure xuly;
var f:text; h:boolean;
begin
assign(f,fo);
rewrite(f);
h:=kt(n);
while h=false do
begin
inc(n);
h:=kt(n);
end;
write(f,n);
close(f);
end;
{-----------------}
begin
nhap;
xuly;
end.
{******************************************************}
program max;
const fi='max.inp';
fo='max.out';
type mang=array[1..100] of integer;
var n:integer;
A:mang;
{--------------}
procedure nhap;
var f:text;
i:integer;
begin
assign(f,fi);
reset(f);
read(f,n);
for i:=1 to n do read(f,a[i]);
close(f);
end;
{---------------}
procedure xuly;
var f:text;
dem,i,j,max:integer;
begin
assign(f,fo);
rewrite(f);
dem:=0;
max:=0;
for i:=1 to n do
begin
for j:=1 to n do
if A[j]=A[i] then inc(dem);
if dem>max then max:=dem;
dem:=0;
end;
write(f,max);
close(f);
end;
{------------------}
begin
nhap;
xuly;
end.