let rec even : int -> (bool -> bool) -> bool =
    fun (n : int) (k : (bool -> bool)) ->
        if n = 0 then
            k true
        else
            odd (n - 1) k
and odd : int -> (bool -> bool) -> bool =
    fun (n : int) (k : (bool -> bool)) ->
        if n = 0 then
            k false
        else
            even (n - 1) k
in
let empty_k : bool -> bool = fun k : bool -> k in

let run_benchmark : int -> int = fun _ : int ->
    print_bool (even (read_int ()) empty_k) ;
    0
in
time run_benchmark
