let gen_kadomatsu a1 a2 = if a1 > a2 then a1 + 1 elif a1 < a2 then a2 - 1 else failwith "gen_kadomatsu" let gen_kadomatsu_retu_retu n k = let rec gen_kadomatsu_retu_retu' idx a1 a2 result = if idx + 2 >= n then a2 :: a1 :: result else let a3 = if idx + 2 + k >= n then a2 else gen_kadomatsu a1 a2 gen_kadomatsu_retu_retu' (idx + 1) a2 a3 (a1 :: result) in gen_kadomatsu_retu_retu' 0 1 0 [] let () = let n, k = stdin.ReadLine().Split() |> Array.map int |> fun arr -> (arr.[0], arr.[1]) gen_kadomatsu_retu_retu n k |> fun lst -> System.String.Join(" ", lst) |> printfn "%s"