fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var x := len(lines[0]); var y := len(lines); while true do [ var did_something := false; for i := 0 to x do [ for j := 1 to y do [ if lines[j][i] = 'O', lines[j - 1][i] = '.' then [ lines[j - 1][i] := 'O'; lines[j][i] := '.'; did_something := true; ] ] ] if not did_something then break; ] var load := 0; for i := 0 to x do [ for j := 0 to y do [ if lines[j][i] = 'O' then load += y - j; ] ] write(h[1], ntos(load) + nl); ]