import Foundation func readInput(filePath: String) -> [[Int?]]? { let content = try? String(contentsOfFile: filePath, encoding: .ascii) let lines = content?.split(separator: "\n") return lines?.map { $0.split(separator: " ").map { Int($0) } } } func safe(_ report: [Int?]) -> Bool { if report.contains(nil) { return false } let diffs = zip(report.dropFirst(), report).map { $0.0! - $0.1! } return diffs.allSatisfy { abs($0) >= 1 } && diffs.allSatisfy { abs($0) <= 3 } && (diffs.allSatisfy { $0 > 0 } || diffs.allSatisfy { 0 > $0 }) } func drop(_ l: [T], at: Int) -> [T] { return l.enumerated().filter { $0.0 != at }.map { $0.1 } } func mutate(_ l: [T]) -> [[T]] { return (0..