<Problem>
http://ntucoder.net/Problem/Details/3323
USES CRT;
type Arr=array[1..1000000] of int32;
var n,i,dem:int32;
a:Arr;
PROCEDURE SORT (var a:Arr; l,r:int32);
var x,tg,i,j:int32;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if not (i>j) then begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
inc(i);
dec(j);
end;
until i>j;
if j>l then SORT(a,l,j);
if i<r then SORT(a,i,r);
end;
begin
readln(n);
for i:=1 to n do read(a[i]);
SORT(a,1,n);
dem:=0;
for i:=1 to n do
if a[i]>=dem then inc(dem);
writeln(dem);
readln
end.