let sierpinski =
let rec loop down space = function
0 -> down
| n ->
loop (List.map (fun x -> space + x + space) down
@ List.map (fun x -> x + " " + x) down)
(space + space)
(n - 1)
loop ["*"] " "
let input () =
match System.Console.ReadLine ()
|> System.Int32.TryParse with
n, true -> true
| _ -> 0
input ()
|> sierpinski
|> List.iter (printfn "%s")
bGV0IHNpZXJwaW5za2kgPQogIGxldCByZWMgbG9vcCBkb3duIHNwYWNlID0gZnVuY3Rpb24KICAgIDAgLT4gZG93bgogIHwgbiAtPgogICAgbG9vcCAoTGlzdC5tYXAgKGZ1biB4IC0+IHNwYWNlICsgeCArIHNwYWNlKSBkb3duCiAgICAgICAgICBAIExpc3QubWFwIChmdW4geCAtPiB4ICsgIiAiICsgeCkgZG93bikKICAgICAgICAgKHNwYWNlICsgc3BhY2UpCiAgICAgICAgIChuIC0gMSkKICBsb29wIFsiKiJdICIgIgoKbGV0IGlucHV0ICgpID0KICBtYXRjaCBTeXN0ZW0uQ29uc29sZS5SZWFkTGluZSAoKQogICAgICAgIHw+IFN5c3RlbS5JbnQzMi5UcnlQYXJzZSB3aXRoCiAgICBuLCB0cnVlIC0+IHRydWUKICB8IF8gICAgICAgLT4gMAoKaW5wdXQgKCkKfD4gc2llcnBpbnNraQp8PiBMaXN0Lml0ZXIgKHByaW50Zm4gIiVzIik=