fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var ops := lines[len(lines) - 1]; var sum := 0; for i := 0 to len(ops) do [ var op := ops[i]; if op <> ' ' then [ var result := select(op = '+', 1, 0); for j := i to len(ops) do [ var num := ""; for k := 0 to len(lines) - 1 do [ if lines[k][j] <> ' ' then num +<= lines[k][j]; ] if num = "" then break; var n := ston(num); if op = '+' then result += n; else if op = '*' then result *= n; else abort; ] sum += result; ] ] write(h[1], ntos(sum) + nl); ]