import java.util.* val scanner = Scanner(System.`in`) val matrix = ArrayList() while (scanner.hasNextLine()) { val line = scanner.nextLine() matrix.add(line.toCharArray()) } var count = 0 matrix.forEachIndexed { row, line -> line.forEachIndexed { col, char -> count += searchFrom(matrix, row, col) } } println(count) fun searchFrom(matrix: ArrayList, row: Int, col: Int): Int { return (if (safeCheckMatrix(matrix, row, col, 'A') && safeCheckMatrix(matrix, row - 1, col - 1, 'M') && safeCheckMatrix(matrix, row - 1, col + 1, 'M') && safeCheckMatrix(matrix, row + 1, col - 1, 'S') && safeCheckMatrix(matrix, row + 1, col + 1, 'S') ) 1 else 0) + (if (safeCheckMatrix(matrix, row, col, 'A') && safeCheckMatrix(matrix, row + 1, col - 1, 'M') && safeCheckMatrix(matrix, row + 1, col + 1, 'M') && safeCheckMatrix(matrix, row - 1, col - 1, 'S') && safeCheckMatrix(matrix, row - 1, col + 1, 'S') ) 1 else 0) + (if (safeCheckMatrix(matrix, row, col, 'A') && safeCheckMatrix(matrix, row - 1, col - 1, 'M') && safeCheckMatrix(matrix, row + 1, col - 1, 'M') && safeCheckMatrix(matrix, row - 1, col + 1, 'S') && safeCheckMatrix(matrix, row + 1, col + 1, 'S') ) 1 else 0) + (if (safeCheckMatrix(matrix, row, col, 'A') && safeCheckMatrix(matrix, row - 1, col + 1, 'M') && safeCheckMatrix(matrix, row + 1, col + 1, 'M') && safeCheckMatrix(matrix, row - 1, col - 1, 'S') && safeCheckMatrix(matrix, row + 1, col - 1, 'S') ) 1 else 0) } fun safeCheckMatrix(matrix: ArrayList, row: Int, col: Int, target: Char): Boolean { return row in matrix.indices && col in matrix[row].indices && matrix[row][col] == target }