fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var state := lines[0]; var n_splits := 0; for l in lines do [ var new_state := fill(byte, '.', len(state)); for i := 0 to len(state) do [ if state[i] = 'S' then [ if l[i] = '^' then [ n_splits += 1; new_state[i - 1] := 'S'; new_state[i + 1] := 'S'; ] else [ new_state[i] := 'S'; ] ] ] state := new_state; ] write(h[1], ntos(n_splits) + nl); ]