local function Ack(m, n)
  if m == 0 then return n+1 end
  if n == 0 then return Ack(m-1, 1) end
  return Ack(m-1, (Ack(m, n-1))) -- The parentheses are deliberate.
end

local N = tonumber(arg and arg[1]) or 10
io.write("Ack(3,", N ,"): ", Ack(3,N), "\n")