program heapsort;
const
IM = 139968;
IA = 3877;
IC = 29573;
var
LAST: integer = 42;
function gen_random(n: double): double;
begin
LAST := (LAST * IA + IC) mod IM;
result := n * LAST / IM;
end;
// 1:1 translation of Java-version, error if n=1
procedure sort(n: integer; var a: array of double);
var
rra: double;
i, j, l, ir: integer;
begin
l:=(n shr 1)+1;
ir:=n;
while True do begin
if l>1 then begin
dec(l);
rra:=a[l];
end else begin
rra:=a[ir];
a[ir]:=a[1];
dec(ir);
if (ir=1) then begin
a[1]:=rra; exit;
end;
end;
i:=l;
j:=l shl 1;
while (j<=ir) do begin
if (j<ir)and(a[j]<a[j+1]) then
inc(j);
if (rra<a[j]) then begin
a[i]:=a[j];
i:=j;
inc(j,j);
end else
j:=ir+1;
end;
a[i]:=rra;
end;
end;
var NUM, code, i: integer;
ary: array of double;
begin
NUM:=1;
if ParamCount=1 then Val(ParamStr(1),NUM,code);
setLength(ary,NUM+1);
ary[0]:=0.0;
for i:=1 to NUM do
ary[i]:=gen_random(1);
sort(NUM, ary);
WriteLn(ary[NUM]:10:10);
end.