class Solution { fun checkValid(matrix: Array): Boolean { val n = matrix.size val required = (1..n).toSet() fun checkDimension( dimensions: Iterable> ): Boolean = dimensions.all { it.toSet() == required } return checkDimension(matrix.map(IntArray::toList)) && checkDimension((0 until n).map { x -> matrix.map { row -> row[x] }}) } }