// http://yukicoder.me/problems/37 open System open System.Collections.Generic let dpfn fmt = Printf.kprintf Diagnostics.Debug.WriteLine fmt let factors n = let i = ref 2 let tmp = ref n seq { while !i * !i <= n do if !tmp % !i = 0 then tmp := !tmp / !i yield !i else incr i if !tmp <> 1 then yield !tmp } [] let main argv = let N = Console.ReadLine().Trim() |> int let A = Console.ReadLine().Trim().Split([|' '|]) |> Array.map int let A' = Array.init (N-1) (fun i -> A.[i+1]) A' |> Array.map (fun a -> factors a|>List.ofSeq, a) |> Array.sort |> Array.map snd |> List.ofArray |> fun a' -> A.[0] :: a' |> List.map string |> String.concat " " |> printfn "%s" 0 // 整数の終了コードを返します