fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var puzzles := list_break(lines, ""); var sum := 0; for puzzle in puzzles do [ var x := len(puzzle[0]); var y := len(puzzle); for i := 1 to x do [ var d := 0; while true do [ if i - 1 - d < 0 or i + d >= x then [ sum += i; goto next_puzzle; ] for j := 0 to y do if puzzle[j][i - 1 - d] <> puzzle[j][i + d] then goto no_match1; d += 1; ] no_match1: ] for j := 1 to y do [ var d := 0; while true do [ if j - 1 - d < 0 or j + d >= y then [ sum += j * 100; goto next_puzzle; ] if puzzle[j - 1 - d] <> puzzle[j + d] then goto no_match2; d += 1; ] no_match2: ] next_puzzle: ] write(h[1], ntos(sum) + nl); ]