real procedure cputime;
inline("my_dsa.retval.u.real val = (double)clock() / (double)CLOCKS_PER_SEC;");

begin 

    comment library 1;


    integer 
        i,
        j,
        k,
        k1;
    real 
        t1,
        t2;
    integer procedure ackermann(m, n);
        value 
            m,
            n;
        integer 
            m,
            n;
        ackermann :=
            if m = 0 then 
                n + 1
            else if n = 0 then 
                ackermann(m - 1, 1)
            else 
                ackermann(m - 1, ackermann(m, n - 1));

    k := 16;
    k1 := 1;
    for i := 1 step 1 until 6 do 
        begin 
        t1 := cputime;
        j := ackermann(3, i);
        t2 := cputime;
        if j != k - 3 then 
            begin 
            outreal(1, i);
            outreal(1, j)
            end;
        outreal(1, t2 - t1);
        outreal(1, 3 * (t2 - t1) / (512 * k1 - 15 * k + 9 * i + 37) );
        k1 := 4 * k1;
        k := 2 * k;
        end 
end