#!/usr/local/bin/lua-- $Id: heapsort.lua,v 1.10 2001/05/08 02:46:59 doug Exp $
-- http://www.bagley.org/~doug/shootout/
-- contributed by Roberto Ierusalimschy

local IM = 139968
local IA =   3877
local IC =  29573

local LAST = 42
function gen_random(max)
  LAST = math.mod((LAST * IA + IC), IM)
  return( (max * LAST) / IM )
end

function heapsort(n, ra)
  local j, i, rra
  local l = math.floor(n/2) + 1
  local ir = n;
  while 1 do
    if l > 1 then
      l = l - 1
      rra = ra[l]
    else
      rra = ra[ir]
      ra[ir] = ra[1]
      ir = ir - 1
      if (ir == 1) then
        ra[1] = rra
        return
      end
    end
    i = l
    j = l * 2
    while j <= ir do
      if (j < ir) and (ra[j] < ra[j+1]) then
        j = j + 1
      end
      if rra < ra[j] then
        ra[i] = ra[j]
        i = j
        j = j + i
      else
        j = ir + 1
      end
    end
    ra[i] = rra
  end
end

local ary = {}
local N = (tonumber((arg and arg[1])) or 1)

for i=1, N do
    ary[i] = gen_random(1.0)
end

heapsort(N, ary)

io.write(string.format("%0.10f\n", ary[N]))