let calCost sy sx (map : char[][]) = let cal y x = (sy - y) ** 2.0 + (sx - x) ** 2.0 |> sqrt let mutable cost = 0.0 for i in 1 .. map |> Array.length do for j in 1 .. map.[0] |> Array.length do if map.[i-1].[j-1] = '1' then cost <- cost + (cal (i |> float) (j |> float)) cost let H, W = let t = stdin.ReadLine().Split() |> Array.map int in t.[0], t.[1] let P = Array.init H (fun _ -> stdin.ReadLine().ToCharArray()) let mutable ans = 1 <<< 16 |> float for i in 1 .. H do ans <- min ans (calCost 0.0 (i |> float) P) ans <- min ans (calCost (W + 1 |> float) (i |> float) P) for i in 1 .. W do ans <- min ans (calCost (i |> float) 0.0 P) ans <- min ans (calCost (i |> float) (H + 1 |> float) P) ans |> printfn "%A"