require "continuation"

def here
    return callcc { |a| return a }
end

def bar(i)
    printf "start %d; ", i
    b = if i < 3 then bar(i+1) else here end
    printf "end %d; ", i
    return b
end

n = 3
c = bar(1)
n = n - 1
puts  # print newline
if n > 0 then c.call(c) end
puts "done"