let (|ZERO|ODD|EVE|) n = match n%2,n with | _,0 -> ZERO | 0,x -> EVE x | _,x -> ODD x let genTakableEdgeLengthList = function | ZERO -> [0] | ODD x -> [1 .. (x/2)+1] | EVE x -> [1 .. (x/2) ] let D = stdin.ReadLine() |> int D/2 |> genTakableEdgeLengthList |> List.map (fun x -> x * (D/2-x)) |> List.max |> printfn "%i"